2012-11-14 25 views
6

tôi cố gắng thêm thực thể khuôn khổ để an ủi ứng dụng: tôi nhấn "thêm mục mới" và enter image description hereLàm thế nào để thêm thực thể khuôn khổ để an ủi ứng dụng (hình ảnh được bao gồm)

sau đó enter image description here

sau đó

enter image description here

enter image description here

enter image description here

enter image description here

sau đó tôi thêm mã:

class Program 
    { 
     static void Main(string[] args) 
     { 
      try 
      { 
       Database1Entities db = new Database1Entities(); 
       db.AddToTableTest(new TableTest { name = "name" }); 
       db.SaveChanges(); 

       int count = db.TableTest.Count(); 
       int ui = 9 + 0; 
      } 
      catch (Exception e) 
      { 

      } 
     } 
    } 

Nó cung cấp cho không có lỗi, nhưng tôi không thấy bất kỳ thay đổi trong cơ sở dữ liệu. Tôi đã mô tả sự cố tốt hơn here

+4

Làm thế nào để bạn biết nó không có lỗi nếu bạn đang nuốt ngoại lệ? –

+1

Tôi đặt điểm ngắt ở đó –

+1

Bạn nên để lỗi đó ra cho đến khi bạn chắc chắn rằng bạn đã làm việc đó. Nếu bạn có một 'try/catch', thì bạn sẽ chỉ tìm hiểu về ngoại lệ tại khối catch. Nếu bạn không có nó ở tất cả, nhưng bạn đang gỡ lỗi, thay vào đó bạn sẽ tìm thấy về nó trên dòng mà errored, vì vậy bạn có thể thấy những gì sai với nó. (Có các tùy chọn trong VS để thay đổi hành vi này, nhưng đó là mặc định) – Bobson

Trả lời

3

Tôi đã thực hiện các bước tương tự như bạn đã làm để thiết lập mô hình EF. tệp database.mdf của bạn có số Copy to Output Directory được đặt thành Copy always, điều đó có nghĩa là mỗi lần bạn nhấn F5 (xây dựng hoặc gỡ lỗi ứng dụng của bạn), tệp sẽ được thay thế bằng tệp trống trong dự án của bạn.

Thay đổi Copy to Output Directory trên cửa sổ Thuộc tính của tệp mdf sẽ giải quyết được sự cố của bạn.

Nếu bạn sử dụng Copy if newer, bạn sẽ kiên trì bất kỳ sửa đổi nào về nội dung của cơ sở dữ liệu cho đến khi bạn chỉnh sửa cơ sở dữ liệu (mdf).

Với Do not copy mọi thay đổi đối với tệp mdf sẽ không được phản ánh trên ứng dụng của bạn và có thể sẽ tạo ra sự cố với EF.

Tôi đề xuất cho trường hợp này bạn sử dụng Copy if newer và điền dữ liệu cơ bản của mình vào tệp mdf để bạn sẽ luôn có sẵn.

+0

Tôi đã thử các kết hợp khác nhau và Sao chép nếu mới hơn. nhưng khi tôi đóng kết nối với cơ sở dữ liệu và sau đó làm mới nó, hãy đếm vẫn còn = 1 –

+0

ý của bạn là làm mới bằng cách làm mới nó? xin vui lòng sử dụng một cái gì đó như thế này và dán kết quả của bạn: http://pastebin.com/MdwgeHKn –

+0

Kết quả rất đơn giản. Nếu tôi chỉ nhấn F5 5 lần, đếm = 5. nhưng nếu tôi đóng dự án và mở nó và sau đó nhấn F5, đếm sẽ là = 1. Vì vậy, tôi nghĩ rằng, bạn là đúng, cơ sở dữ liệu được thay thế bằng mới. Nhưng làm thế nào để ngăn chặn nó? –

Các vấn đề liên quan