私はEFpocoを介して次の関係をモデル化しようとしています。
Class TableA
{
[Key]
public int TableAId {get;set;}
public Attribute Attribute {get;set;}
}
Class TableB
{
[Key]
public int TableBId {get;set;}
public Attribute Attribute {get;set;}
}
Class Attribute
{
[Key]
public int AttributeId {get;set;}
public string Name{get; set}
}
ここで、TableAとTableBは両方とも属性を参照します。
そのために、次の流暢なマッピングを挿入しました。
new EntityTypeConfiguration<TableA>().HasRequired(x => x.Attribute);
new EntityTypeConfiguration<TableB>().HasRequired(x => x.Attribute);
すべて問題なく、このタイプのアプローチを使用して要素を追加できます。
var a = new TableA();
var attrA = new Attribute { Name = "Table A Attribute"};
a.Attribute = attrA;
MyDbContext.TableAs.Add(a);
MyDbContext.SaveChanges();
TableA(またはB)と参照されている属性の両方を削除するまで。
MyDBContex.TableAs.Remove(a);
MyDBContex.Attributes.Remove(a.Attribute);
これにより、FKについて不平を言う例外が発生します。
そのような関係をマッピングして構成するには、どのようなオプションが必要ですか?
TableAオブジェクトとTableBオブジェクトを挿入および削除し、それらに関連する属性エントリをカスケード削除する必要があります。