0
Foo、Bar、Foobの3種類のEDMがあります。 FoobはFooのサブクラスです。 FooにはBarエンティティのコレクションがあります。 BarにはFooエンティティのコレクションがあります。私はコレクションに新しいFooオブジェクトを追加したいと思います。Barオブジェクトと関連するFoobオブジェクトも追加したいと思います。次のコードが動作するであろうと、このような:Entity Frameworkのオブジェクトコンテキストにオブジェクトツリーを添付する
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に重複するキー行を挿入できませんユニークなインデックスを持つ。
私はあなたの変更が保存された後に、あなたがfooオブジェクトIDを作成したことを示唆しているので、 'ctx.SaveChanges();'の後に接続しようとします(autoincrementがtrueに設定されている場合)。 –