EF4:如何重新加载/刷新EntityCollection?
问题描述:
在C#/。NET 4.0使用实体框架4.0。EF4:如何重新加载/刷新EntityCollection?
在我的实体模型中,我有一个对象(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);
我想避免必须卸载整个上下文(因为这将迫使节省任何当前修改的信息,这是不希望的),因此没有任何如何将新添加的数据导入到本地实体模型中?
谢谢。
答
myObject.OtherObjects.Clear();
Context.AcceptAllChanges();
myObject.OtherObjects.Load();
声明:未经测试。
谢谢!我被卡住在刷新,清除和负载的兔子洞中应该让我朝着正确的方向前进。 – RandomUsername 2010-10-08 21:11:51
@RandomUsername:很高兴能够帮助你。 – Kamyar 2010-10-08 21:20:45