我有一個實體框架項目設置。它它有四個表格和三個實體(「A」,「B」,&「C」)。有一個1:N A和B之間的關係,以及A和C,和一個之間:N B和C之間關係如何在實體框架中創建新對象時添加子關係
我使用以下代碼來嘗試添加新的「B 「實體:
A t = null;
if (this.MyA == null)
{
t = new A()
{
EntityKey = this.MyAReference.EntityKey,
AId = (Guid)this.MyAReference.EntityKey.EntityKeyValues[0].Value
};
}
else
{
t = this.MyA;
}
this.MyA = null;
context.Attach(t);
this.MyA = t;
的 」B「 對象(」 這「)具有的一個子集 」C「 的對象。這些「C」對象已經存在於數據庫中,但與新對象無關(顯然)。當我調用「SaveChanges()」時,它會拋出一個異常,因爲它試圖將所有子「C」對象添加到數據庫中的新對象。
我怎樣才能讓它在「Table_JoinBC」中創建引用,而不是嘗試重新創建「C」對象?
感謝您的任何幫助。
一個有用的提示,但它似乎並沒有解決問題。我嘗試了幾種不同的配置,但沒有運氣。 – Sako73 2010-10-19 19:24:06
@ Sako73 ...我剛剛更新了一個關於如何使用STUB實體添加新B對象的例子的答案 – 2010-10-19 19:31:27
如果您不確定A是否在數據庫中並且處於內部狀態,那麼做同樣的事情時最短和最乾淨的解決方案是什麼?有些情況下也應該插入? – watbywbarif 2015-03-18 08:16:33