我有一个地址模型,它用于我系统中的所有模型,如下所示:
class Person
{
public IList<PersonAddress> PersonAddresses { get; set; }
public Person()
{
PersonAddresses = new List<PersonAddress>();
}
}
class PersonAddress
{
public int PersonId { get; set; }
public Person Person { get; set; }
public int AddressId { get; set; }
public Address Address { get; set; }
}
class Address
{
//...
}
并在OnModelCreating:
builder.Entity<PersonAddress>()
.HasKey(pa => new { pa.PersonId, pa.AddressId });
它的作品非常好!我唯一的问题是关于级联删除。我如何设置此方案:
目前我看到删除Person会删除PersonAddress(但不会删除相关地址)。
我没有抱怨这种行为,但我不清楚我如何设置自动级联删除实体,因为我需要手动执行删除。
感谢您的时间!
答案 0 :(得分:0)
将WillCascadeOnDelete(true)
或WillCascadeOnDelete(false)
扩展名与流畅的api。
builder.Entity<PersonAddress>()
.HasKey(pa => new { pa.PersonId, pa.AddressId })
.WillCascadeOnDelete(true);