2010-10-08 176 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