我已更新項目以使用VS2012
附帶的新Entity Framework
。但是,我遇到了一些問題,其中我的代碼拋出異常。實體框架5不更新兩個實體中的導航屬性
在VS2010
版本的Entity Framework
,我能夠創建或修改Entity
,並呼籲SaveChanges()
例如之前使用其導航性能:具有發票的集合客戶的 導航屬性。
Client c = new Client();
Invoice I = new Invoice();
c.Invoices.Add(I);
然後,我會能夠在我的代碼實際上是在保存沒有問題在什麼地方使用Invoice.Client
。現在Invoice.Client == null
。
同樣,在設置I.Client = C
,I
下不C.Invoices
顯示缺少什麼我在這裏或者這只是簡單的如何Entity Framework 5
是什麼?
編輯
在VS2010
,我創建了一個新的項目,添加相同DataSource
和下面的代碼和預期一樣:
Client C = new Client();
C.Name = "Test";
Invoice I = new Invoice();
C.Invoices.Add(I);
MessageBox.Show(I.Client.Name);
難道在VS2012
並沒有骰子同樣的事情。
盧克嗨,按我上面的編輯,2010年的代碼正常工作,但相同的代碼和數據源不在2012年。將項目添加到上下文中沒有任何區別 – Taylor
@Taylor檢查您是否有自我跟蹤實體,這是替代EF跟蹤圖。自我跟蹤實體創建一個代理實體,該實體覆蓋了可以在set上執行修正的屬性。如果您在舊版本中啓用了此功能,但不是您的新功能,這可以解釋行爲 –
感謝盧克,這是我從未遇到過的情況,自我跟蹤實體如何啓用? – Taylor