2010-12-20 62 views
0

我有一個EDM,它有以下三種類型:Foo,Bar和Foob。 Foob是Foo的一個子類。 Foo有一個Bar實體的集合。酒吧有一個Foo實體的集合。我想爲集合添加一個新的Foo對象,以及它的Bar和相關的Foob對象。這樣的下面的代碼將工作:將實體框架中的對象樹附加到對象上下文中

Foo foo = new Foo(){Name = "Foo"}; 
using(var ctx = new EntityContext()) 
{ 
ctx.Foo.Attach(foo); 
Bar bar = new Bar(); 
bar.Items.Add(new Foob(){Name="Foob1"}; 
bar.Items.Add(new Foob(){Name="Foob2"}; 
foo.Bars.Add(bar); 
ctx.SaveChanges(); 
} 

但是上面的代碼給我下面的異常:

System.Data.SqlClient.SqlException:不能在對象插入重複鍵行「dbo.tblFoo '具有獨特的索引。

+0

嘗試附加'ctx.SaveChanges();'後,因爲我建議你的修改後保存數據庫已創建foo對象id(如果它autoincrement設置爲true)。 – 2010-12-20 09:33:16

回答

1

嘗試檢查在SQL事件探查器中爲此執行的SQL代碼。可能你忘記設置Foob實體的自動增量。

相關問題