2010-10-08 129 views
0

在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); 

我想避免必须卸载整个上下文(因为这将迫使节省任何当前修改的信息,这是不希望的),因此没有任何如何将新添加的数据导入到本地实体模型中?

谢谢。

回答

2
myObject.OtherObjects.Clear(); 
Context.AcceptAllChanges(); 
myObject.OtherObjects.Load(); 

声明:未经测试。

+0

谢谢!我被卡住在刷新,清除和负载的兔子洞中应该让我朝着正确的方向前进。 – RandomUsername 2010-10-08 21:11:51

+0

@RandomUsername:很高兴能够帮助你。 – Kamyar 2010-10-08 21:20:45