我仍然在使用 EF。我在我的项目中使用了代码优先方法并偶然发现了以下问题。
我有以下对象:
public class Employee
{
public int EmployeeId { get; set; }
public int BusinessUnitId { get; set; }
public virtual BusinessUnit BusinessUnit { get; set; }
}
public class Quote
{
public int QuoteId { get; set; }
[DisplayName("Business Unit")]
public int BusinessUnitId { get; set; }
[DisplayName("Responsible Employee")]
public int EmployeeId { get; set; }
[DisplayName("Date Issued")]
[DataType(DataType.Date)]
public DateTime DateIssued { get; set; }
[DataType(DataType.MultilineText)]
public string Description { get; set; }
public virtual Employee Employee { get; set; }
public virtual BusinessUnit BusinessUnit { get; set; }
}
两者都包含一个 BusinessUnit 属性,似乎 EF 不想允许这样做。当执行带有一堆包含的 Linq 查询时,看到我在 Index() 方法上收到以下错误。
在表 'Quotes' 上引入 FOREIGN KEY 约束 'FK_dbo.Quotes_dbo.BusinessUnits_BusinessUnitId' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建约束。请参阅以前的错误。
有人可以向我解释为什么我会收到此错误以及如何修复它。谢谢。
编辑:
这肯定是由于在 Quote 对象和 Employee 对象中都包含 BusinessUnit 属性引起的。我只是不明白为什么。
编辑2:
BusinessUnit 类的代码:
public class BusinessUnit
{
public int BusinessUnitId { get; set; }
public string Name { get; set; }
}