0

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' に重複するキー行を挿入できません。

4

1 に答える 1

1

これに対して実行された SQL コードを SQL プロファイラーで確認してみてください。Foob エンティティの自動インクリメントの設定を忘れている可能性があります。

于 2010-12-20T09:20:16.063 に答える