-1

私はエンティティフレームワークを使用しています。
1:nにテーブルAとBがあります。
Aの多くの行を削除し、テーブルAのキー行の1つにテーブルBの1つまたは複数の行があるとします。

次のテキストでsqlExceptionが発生します

 The DELETE statement conflicted with the REFERENCE constraint "FK_A_B". 
 The conflict occurred in database "DCDCommunity", table "Template.Template",  
 column 'ApplicationTypeID'.  The statement has been terminated.

外部キーに違反したキーのIDを取得する方法はありますか?

重要な編集:

Bに行があるかどうかを確認できます。
しかし、それは永続性の問題を起こしやすいでしょう。
(チェックの直後に別の挿入要求が発行されたとしましょう。)

データベースをチェックせず、データベースに例外をスローさせないことで、永続性を処理させました(特に複数のマシンで実行している場合)
。SQL例外にさらに多くのデータしかない場合は、このメカニズムのみに依存できます。

4

1 に答える 1

1

You cannot delete Rows from A (your primary key table) where there are related records in B (foreign table). それは関係に違反します。したがって、必要がfirst delete them from Bありthen delete from Aます。または、実行できますON DELETE CASCADE。Plsはここでこの例をチェックしてください

于 2012-12-09T16:55:07.393 に答える