2012-11-06 47 views
0

我有POCO類的問題在EF 4實體框架POCO - 導航屬性不會刷新

我有一個Order實體至極包含外鍵的客戶實體。

因此,Order類具有Customer類型的導航屬性。

它看起來像這樣:

public class Order 
{ 
    public virtual int Id { get; set; } 
    public virtual CustomerId { get; set; } 
    public virtual Customer customer { get; set;} 
    … 
} 

當我加載命令,導航屬性的客戶是正確的,但如果在客戶屬性改變,導航屬性不與新客戶刷新。

如果我在EF上下文中調用DetectChanges()方法,則會刷新導航屬性。

我讀過所有標記爲虛擬的屬性,關係同步是自動的,但事實並非如此。

我哪裏錯了?

感謝所有幫助

+0

我剛剛測試過這個,對我來說它按預期工作。你能否展示更多細節?您正在運行的查詢和後續代碼,直到您更改FK屬性,您使用的確切EF版本以及ObjectContext或DbContext等。另請在調試器中檢查加載的訂單和客戶是否是動態代理。 – Slauma

回答

0

這意味着,由於某種原因,代理爲您實體未創建。看看這篇博文 - http://blogs.msdn.com/b/adonet/archive/2009/12/22/poco-proxies-part-1.aspx。以下是創建代理的要求:http://msdn.microsoft.com/en-us/library/vstudio/dd468057(v=vs.100).aspx。代理創建不能被禁用。

+0

感謝這些有用的鏈接。它有助於我更好地理解代理的使用,並檢查代碼中可能出現的錯誤。最後,問題來自另一個導航屬性,它沒有得到很好的實施。 –