将对象树附加到Entity Framework中的对象上下文

时间:2010-12-20 09:14:01

标签: c# entity-framework objectcontext

我有一个EDM,有以下三种类型:Foo,Bar和Foob。 Foob是Foo的子类。 Foo有一系列Bar实体。 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'中插入重复的键行。

1 个答案:

答案 0 :(得分:1)

尝试检查在SQL事件探查器中为此执行的sql代码。也许你忘了为Foob实体设置自动增量。