【发布时间】:2012-01-02 12:02:52
【问题描述】:
当我在上下文中的实体上使用 RefreshMode.StoreWins 调用 Refresh 并且数据库中的值与实体当前持有的值不同时,我的实体是否应该将当前值更新为数据库的值,即使我的对象实体状态不变?
当编辑一个实体时,我们实例化一个新的上下文并实例化一个新的ourClass(classId),它从数据库中加载我们类类型的当前实体。对 ourClass 进行更改并正确调用 SaveChanges 会将值保存到数据库中。返回到调用视图模型后,我们使用 RefreshMode.StoreWins 在预先存在的上下文上调用 Refresh 但这并没有更新此上下文中实体的值,尽管看到数据库中的值已使用 SSMS 正确更新。我应该考虑什么来解决这个问题?
编辑: 我们如何做事的简单示例:
var context1 = new Model1();
LoadContext(); //loads all the data from the database and adds them to the context
var context2 = new Model1();
var SelectedObject = context1.Table1.First();
OurObject selectedObjectForEdit = new OurObject(SelectedObject.ObjectId);
context2.Table1.Add(selectedObjectForEdit);
selectedObjectForEdit.Name = "new name";
context2.SaveChanges();
context1.Refresh(RefreshMode.StoreWins, SelectedObject);
【问题讨论】:
标签: c# entity-framework-4 objectcontext