[英]Mapping optional to many relationship in Entity Framework
一些背景:我继承了数据库。 其他应用程序正在针对它运行,因此我无法更改结构。 我们有一个员工表和一个活动表。 一些雇员是主管,活动可以选择指定一名主管,以表明只有该特定主管才能让其雇员从事该特定活动。
数据库的设置方式,如果SupID字段不为null,并且是Activity中SupID列所引用的字段,则员工为主管。
这是我正在使用的类的示例:
public class Emp
{
public int EmpID { get; set; }
public string Fname { get; set; }
public string Lname { get; set; }
public int SupID { get; set; }
public virtual ICollection<Activity> SupervisedActivities { get; set; }
}
public class Activity
{
[Key]
public string ActNum { get; set; }
public int SupID { get; set; }
public virtual Emp Supervisor { get; set; }
}
我遇到的问题是,无论我如何映射这两个类之间的关系,EF都希望将Activity上的SupID与Emp上的EmpID关联,而不是SupID。 是否可以在不修改数据库的情况下执行我在EF中尝试执行的操作?
不,你不能那样做。
直到EF6,不可能在一侧使用AK(备用键)建立一对多关系。 1边必须始终是父表中的PK。
MS有一个站点,您可以在其中投票支持新的EF功能,这通常是最需要的功能之一: 唯一约束(即候选键)支持
如果需要,您可以在这里投票 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.