データベースの作成に Code First アプローチを使用しています。TPH(階層ごとのテーブル)継承を使用しようとしています。私のPOCOクラスは次のとおりです。
public abstract class Address
{
public int AddressId { get; set; }
...
}
public abstract class PersonalDetail : Address
{
public int PersonalDetailId { get; set; }
...
}
public partial class AccountHolder : PersonalDetail
{
public int AccountHolderId { get; set; }
}
public partial class Nominee : PersonalDetail
{
public int NomineeId { get; set; }
}
2 つの抽象クラスAddressとPersonalDetail、および 2 つの派生クラスAccountHolderとNomineeを作成しました。PersonalDetailはaddressを継承し、さらにAccountHolderとNomineeはPersonalDetailを継承します。私の流暢なAPIコードは次のとおりです。
modelBuilder.Entity<Address>().Map<PersonalDetail>(m => m.Requires("AddressOf"));
modelBuilder.Entity<PersonalDetail>().Map<AccountHolder>(m => m.Requires("PersonalDetailOf"));
modelBuilder.Entity<PersonalDetail>().Map<Nominee>(m => m.Requires("PersonalDetailOf"));
データを挿入しようとすると、例外がスローされます。つまり、次のようになります。
テーブル 'Addresses' に FOREIGN KEY 制約 'FK_dbo.Addresses_dbo.Addresses_AccountHolder_AddressId' を導入すると、サイクルまたは複数のカスケード パスが発生する可能性があります。ON DELETE NO ACTION または ON UPDATE NO ACTION を指定するか、他の FOREIGN KEY 制約を変更します。
誰でも何が問題なのか、どうすればこの問題を解決できるのか教えてもらえますか?