在C#/ .NET 4.0中使用Entity Framework 4.0。
在我的Entity模型中,我有一个对象(MyObject
),它是一对多关系的一部分,它产生类型为EntityCollection<OtherObject>
的导航属性。生成代码的片段:
public partial class MyObject : EntityObject
{
/* other code */
public EntityCollection<OtherObject> OtherObjects
{
get { /* RelationshipManager stuff */ }
set { /* RelationshipManager stuff */ }
}
/* other code */
}
我加载数据很好,一切都很好。然后另一个进程将行添加到底层的OtherObject表。我希望能够重新加载或刷新我的实体集合,以便获得对这些新对象的访问权。
有没有办法做到这一点?以下两种尝试均未完成任务:
Context.Refresh(RefreshMode.StoreWins, myObject);
Context.Refresh(RefreshMode.StoreWins, myObject.OtherObjects);
我想避免必须卸载整个上下文(因为这会强制保存任何当前修改的信息,这是不可取的),那么有没有办法将新添加的数据放入我的本地实体模型中?
感谢。
答案 0 :(得分:2)
myObject.OtherObjects.Clear();
Context.AcceptAllChanges();
myObject.OtherObjects.Load();
免责声明:未经测试。