私はエンティティフレームワークを使用しています。
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例外にさらに多くのデータしかない場合は、このメカニズムのみに依存できます。