2012-03-15 30 views
16

Tôi đã nhìn thấy rất nhiều người khi cập nhật việc sử dụng hồ sơ:EntityState.Modified có cần thiết cho bản cập nhật không?

... 
ms.Status = status; 
db.Entry(ms).State = EntityState.Modified; 
db.SaveChanges(); 

Đây có phải là dòng yêu cầu không? Tôi đã có thể làm một bản cập nhật mà không có nó.

db.Entry(ms).State = EntityState.Modified; 

Tôi đã tự hỏi câu lệnh này thực sự được sử dụng như thế nào nếu ngữ cảnh đã biết nó sẽ cập nhật bản ghi đó mà không cần bạn xác định rõ ràng tại sao bận tâm xác định rõ ràng?

Trả lời

30

Điều này là bắt buộc nếu các thay đổi của bạn trong thực thể được thực hiện khi thực thể không được theo dõi bởi ngữ cảnh EF (thực thể đã được tách ra). Nếu bạn nạp thực thể từ ngữ cảnh, sửa đổi nó và lưu nó bằng cùng bối cảnh mà bạn không cần sử dụng nó vì EF sẽ theo dõi các thay đổi và thiết lập trạng thái tự động.

+0

Cảm ơn bạn đã giải thích rõ ràng ngay bây giờ. – John

1

Từ hiểu biết của tôi, điều này chỉ cần được sử dụng nếu thực thể đã được đính kèm lại vào ngữ cảnh. Nếu không thì không.

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