我可以在不显式设置对象的每个属性的情况下执行以下操作(不起作用)。产品是由默认模型联编程序通过表单提交创建的对象,而ProductInDb是上下文/数据库中我希望覆盖/更新的对象。两者的ProductID主键相同。
var ProductInDb = context.Products.FirstOrDefault(x => x.ProductID == product.ProductID);
ProductInDb = product;
context.SaveChanges();
您可以附加现有的product
并将其状态设置为Modified
。
如果使用的是DbContext
API
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();