我简化了下表结构
public class UserProfile
{
public int UserId { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
}
public class Buyer
{
public int BuyerId { get; set; }
public int UserId { get; set; }
public UserProfile User { get; set; }
public ICollection<Order> Order { get; set; }
}
public class Seller
{
public int SellerId { get; set; }
public int UserId { get; set; }
public UserProfile User { get; set; }
public ICollection<Order> Orders { get; set; }
}
public class Order
{
public int OrderId { get; set; }
public int BuyerId { get; set; }
public int SellerId { get; set; }
public string Address { get; set; }
public <OrderLine> OrderLines { get; set; }
}
public class OrderLine
{
public int OrderId { get; set; }
public int OrderLineNo { get; set; }
public int StockId { get; set; }
public int Quantity { get; set; }
}
当我运行 Update_Database 命令时,出现以下错误
在表 'Buyers' 上引入 FOREIGN KEY 约束 'FK_dbo.Buyers_dbo.UserProfile_UserId' 可能会导致循环或多个级联路径。DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
我的买家和卖家表与 UserId 上的 UserProfile 具有 1 对 1 的关系,因此我了解当您删除买家时,它无法删除 UserProfile,因为可能存在卖家,反之亦然。
因此,我想使用流畅的语法关闭仅买家到用户和卖家到用户的级联删除,但我无法工作,如果有人可以提供帮助,我将不胜感激。
我查看了其他 StackOVerflow 问题是否存在相同的错误,但找不到与我的场景匹配的问题。
额外:如果我将买家表中的 UserId 重命名为 DummyUserId,那么 Uppdate-Database 命令可以工作,但这并不好。