繁体   English   中英

在实体框架中将可选关系映射到许多关系

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM