0

私は2つのテーブルを持っています。これらはデザインとライクです。1 つのデザインに多くのいいねを付けることができ、1 つのいいねは 1 つのデザインに関連付ける必要があります。

デザインを削除しようとすると、例外がスローされます:

DELETE ステートメントが REFERENCE 制約 "FK_dbo.DesignLike_dbo.Design_DesignId" と競合しました。データベース「XXXDB」、テーブル「dbo.DesignLike」、列「DesignId」で競合が発生しました。ステートメントは終了されました。

modelBuilder.Entity().HasMany(x => x.Likes).WithRequired(x => x.Design).WillCascadeOnDelete(false);

関連するエンティティを削除しようとさえしませんか? なぜこの例外が発生するのですか?

4

2 に答える 2

2

子オブジェクトがまだあるオブジェクトを削除しようとしています。子オブジェクトの外部キーは、この例外を与えます。

現在のオブジェクトを削除する前に、子オブジェクトを切り離して別の親にリンクする必要があります。または、それらをカスケード削除に含めます。

あなたの場合、削除しようとしているデザインには、デザインのIDに設定された外部キーを持つ少なくとも1つのようなものがあります。デザインを削除し、カスケードがオフになっていると、好きな外部キー制約に違反します。

于 2013-07-03T09:13:59.133 に答える