Asp.net-Mvc

使用實體框架保存更改/更新數據集中的現有對象,而不必單獨設置每個屬性

  • January 17, 2020

我可以在不必顯式設置對象的每個屬性的情況下執行以下操作(不起作用)嗎?Product 是預設模型綁定器從表單送出中創建的對象,ProductInDb 是我希望覆蓋/更新的上下文/數據庫中的對象。ProductID 主鍵在兩者上是相同的。

var ProductInDb = context.Products.FirstOrDefault(x => x.ProductID == product.ProductID);

ProductInDb = product;

context.SaveChanges();

您可以附加現有product並將其狀態設置為Modified.

如果您使用DbContextAPI

context.Products.Attach(product);
context.Entry(product).State = EntityState.Modified;

context.SaveChanges();

為了ObjectContext

context.Products.Attach(product);
context.ObjectStateManager.ChangeObjectState(product, EntityState.Modified);

context.SaveChanges();

引用自:https://stackoverflow.com/questions/7642570