我有以下配置。我有一个用户。该用户有一个邮寄地址和一个实际地址(见下文)。
当我尝试运行update-database时出现以下错误: 引入外键约束“FK_dbo.UserProfile_dbo.Address_PhysicalAddressId”在表“UserProfile”上可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION, 或修改其他FOREIGN KEY限制。
我的要求是在Address对象上没有任何反向映射,我还需要能够硬删除UserProfile对象,包括其子地址(地址表中只有两个地址)。
我的问题是,我想要的这个功能是否可能?如果是,请问我做错了什么?
[编辑] Address对象还用于UserCompany和Customer等对象中。
public class UserProfile
{
public Guid UserProfileId {get; set;}
public Guid PostalAddressId {get;set;}
public virtual Address PostalAddress {get;set;}
public Guid PhysicalAddressId {get;set;}
public virtual Address PhysicalAddress {get;set;}
}
public class Address{
public Guid AddressId {get;set;}
public string LineOne {get;set;}
public string LineTwo {get;set;}
public string LineThree {get;set;}
}
接下来是我的流畅映射。
public UserProfileMapping()
{
ToTable("UserProfile");
HasKey(pk => pk.UserProfileId);
Property(pr => pr.UserProfileId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
HasRequired(a => a.PostalAddress).WithMany().HasForeignKey(fk => fk.PostalAddressId);
HasRequired(a => a.PhysicalAddress).WithMany().HasForeignKey(fk => fk.PhysicalAddressId);
}
public AddressMapping()
{
ToTable("Address");
HasKey(pk => pk.AddressId);
Property(pr => pr.AddressId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
当我尝试运行update-database时出现以下错误: 引入外键约束“FK_dbo.UserProfile_dbo.Address_PhysicalAddressId”在表“UserProfile”上可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION, 或修改其他FOREIGN KEY限制。
我的要求是在Address对象上没有任何反向映射,我还需要能够硬删除UserProfile对象,包括其子地址(地址表中只有两个地址)。
我的问题是,我想要的这个功能是否可能?如果是,请问我做错了什么?
[编辑] Address对象还用于UserCompany和Customer等对象中。