Foo、Bar、Foob の 3 つのタイプの EDM があります。Foob は Foo のサブクラスです。Foo には Bar エンティティのコレクションがあります。Bar には Foo エンティティのコレクションがあります。Bar および関連する Foob オブジェクトと共に、新しい Foo オブジェクトをコレクションに追加したいと考えています。次のコードが機能するように:
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' に重複するキー行を挿入できません。