我正在使用 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"));
现在,当我尝试插入数据时,它会引发异常,即:
在表“地址”上引入 FOREIGN KEY 约束“FK_dbo.Addresses_dbo.Addresses_AccountHolder_AddressId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
谁能告诉我这是什么问题,我该如何解决这个问题?