私はこれらの2つのエンティティを持っています
class AUT
{
public Guid ID { get; set; }
public string Name { get; set; }
public Engineer Engineer { get; set; }
}
class InstallationSetup
{
public virtual AUT ApplicationUnderTesting { get; set; }
public Guid ID { get; set; }
// Loads of properties etc
}
class Engineer
{
public Guid ID { get; set; }
public string Name { get; set; }
}
コードを最初に使用し、いくつかのデータ注釈を使用して、これらのエンティティはデータベースを作成します。私は EF 5 を使用しています。アプリケーションを削除すると、それ自体と、参照されている InstallationSetup のみが削除されます。エンジニアを削除するべきではありません。ただし、削除しようとすると、次のエラーが表示されます。
DELETE ステートメントは、REFERENCE 制約 "FK_dbo.InstallationSetups_dbo.AUTs_ApplicationUnderTesting_ID" と競合しました。データベース「UXLab」、テーブル「dbo.InstallationSetups」、列「ApplicationUnderTesting_ID」で競合が発生しました。ステートメントは終了されました。
したがって、AUT に依存するエントリを持つ別のテーブルがあるため、AUT を削除すると、InstallationSetup が外部キーが null のままになり、行が壊れてしまうのではないかと推測しています。
AUTへの参照を持つものも削除する必要があることをエンティティフレームワークに伝えることができるはずです(できればFluent APIを使用しないでください)?これが私が達成したいことです。