次のような(簡略化された)エンティティモデルがあります
public class Address {
}
public class PersonAddress {
public Address Address {get; set;}
}
public class Person {
ICollection<PersonAddress> Addresses { get; set;}
public void SetAddresses(params Address addresses[]) {
Addresses.Clear();
addresses.Select(a => new PersonAddress(this, a)).ForEach(Addresses.Add);
}
}
これは、私のビジネス モデルでは多対多よりも実際に意味があるため、意図的に結合クラスとして実装されています。
当然のことながら、SetAddresses
が実行されると、データベースで何が起こるかというと、PERSON_ADDRESS.FK_PERSON_ID
削除されたPERSON_ADDRESS
レコードの参照が無効になります。しかし、私が望むのは、それを完全に削除することです。
編集:以下のコメントから、私が望むのはおそらくPersonAddress
「識別関係」を持つことであると理解してPerson
いますが、上記のモデルを流暢なAPIを使用してどのように設定すればよいですか?