次の構造の既存のDBがあります。
EF fluent APIを使用して、テーブル間の関係を構成しています。
public GroupEntityConfiguration()
{
HasMany(x => x.Employees).WithRequired().HasForeignKey(x => x.GroupId).WillCascadeOnDelete(true);
}
public EmployeeEntityConfiguration()
{
HasOptional(x => x.InnerGroupMember).WithRequired();
}
この構成を適用すると、新しいEmployee、新しいInnerGroupMemberを追加したり、データをフェッチしたりできます。Employeeを削除しようとすると問題が発生します。次に、例外が発生します。
1つ以上の外部キープロパティがnull許容でないため、関係を変更できませんでした。リレーションシップに変更が加えられると、関連する外部キープロパティがnull値に設定されます。外部キーがnull値をサポートしていない場合は、新しい関係を定義するか、外部キープロパティに別の非null値を割り当てるか、関連のないオブジェクトを削除する必要があります。
私が理解している限り、上記の例外はGroupId外部キーに関連しています。それを修正しようとすると、EmployeeEntityConfigurationに次の行を追加します。
HasKey(x => new { x.Id, x.GroupId});
しかし、それを追加した後、InnerGroupMemberオブジェクトに関連していると思われる別の例外が発生します。
無効な列名'Guest_Id'。無効な列名'Guest_GroupId'。
InnerGroupMemberナビゲーションプロパティをコメントアウトしてその構成を削除すると、Employeeを削除できます。
私が間違っていることと、必要なすべての操作を実行できるようにエンティティを構成する方法についてのヒントを教えてください。ありがとう!