【发布时间】:2015-09-17 11:13:33
【问题描述】:
我目前有一个名为EmployeeDetails 的类,如下所示。
public class EmployeeDetails {
public int EmployeeDetailsId { get; set; }
public string Name { get; set; }
public string Title { get; set; }
[ForeignKey("Manager")]
public int? ManagerId { get; set; }
public virtual EmployeeDetails Manager { get; set; }
[ForeignKey("LineManager")]
public int? LineManagerId { get; set; }
public virtual EmployeeDetails LineManager { get; set; }
}
我正在尝试添加 Manager 和 LineManager 属性,它们将引用相同类型的对象。
当我尝试添加迁移时,出现以下错误:
无法确定 EmployeeDetails 和 EmployeeDetails 类型之间关联的主体端。
在添加 ManagerId、LineManagerId 和 LineManager 属性之前,Manager 属性按预期工作。
我该如何解决?
【问题讨论】:
-
您的映射看起来如何?您是否在 LineManagerId 列上添加了外键?
-
目前我的类上没有任何额外的映射属性。
-
您需要使用属性或流畅的映射来映射您的外键,您的命名约定不会也不能遵循 EF 可以用来解决它的约定。
-
我刚刚添加了外键属性,如我的编辑中所示,并收到以下错误:EmployeeDetails_Manager_Target: : Multiplicity is not valid in Role 'EmployeeDetails_Manager_Target' in relationship 'EmployeeDetails_Manager'。因为从属角色属性不是关键属性,所以从属角色的多重性的上限必须是“*”。
-
你目前在fk关系上是1:1改成一对多
标签: c# .net asp.net-mvc entity-framework