2012-01-19 19 views
0

まず、コードでEntity Framework 4.1を使用し始めました。私はこれまでのADNの技術よりも本当に好きです。Entity Framework 4.1削除時にどの外部キー制約が違反されているかを知るには

データベースに部門テーブルと従業員テーブルがある非常に単純な状況があります。各従業員は部門に属し、部門には多くの従業員が所属しています。ビジネスルールは次のとおりです。部門を削除する一方で、関連する従業員がいる場合は削除を許可しないでください。私は削除の直前に小さなメソッドを書いて依存関係をチェックすることができます。しかし、私のプロジェクトは300 db以上のテーブルを持つ非常に複雑なものなので、これをするのは嫌です。関係が頻繁に変更されるため、プロジェクトのすべての削除方法が大幅に変更されます。

同様の状況では、私は例外をスローし、違反された特定の外部キー制約の名前を取得するために使用しました。違反したFK制約の名前に基づいて、私はクライアントに適切なエラーメッセージを与えました。このテクニックは、150以上のテーブルを持つかなり大きなプロジェクトでもうまくいきました。

EFで同様のことを行うにはどうすればよいですか? SaveChanges()が呼び出されたときに、どのFKが違反されるのかを取得するにはどうすればよいですか?

答えて

0

内部で最も例外のあるMessage(通常はSqlException)を取得する必要があります。次に、その文字列からFK名を抽出し、違反したFKを確認することができます。

関連する問題