更新實體框架對象

entity entity-framework

我使用數據傳輸對像在實體框架和業務層和用戶層之間傳輸數據。我有一些疑問,如果我檢索一個轉換為DTO的對象,我如何在實體框架中更新正確的對象而不只是插入一個副本?

熱門答案

以下代碼將從強類型視圖更新已在MVC中創建為控制器參數的EF 4實體:

似乎訣竅是在將實體添加到上下文後使用ObjectStateManager將狀態從Added更改為Modified。

MyEntities db = new MyEntities();
db.Product.AddObject(product);
db.ObjectStateManager.ChangeObjectState(product, System.Data.EntityState.Modified);
return db.SaveChanges() > 0;

根據@Sean Mills評論,如果您使用的是EF5:

 ((IObjectContextAdapter) db).ObjectContext.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Added);


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因