ASP.NET MVC EF 6:定义查找表/模型

时间:2017-08-10 10:51:02

标签: asp.net-mvc entity-framework entity-framework-6 lookup

我正在尝试在代码优先定义数据库模型,以查看和显示哪个用户被指定为记录数据的专家。 我为用户提供了一个非常简单的模型:

public class User
{
    public int ID { get; set; }
    public string userName { get; set; }
    public string firstName { get; set; }
    public string lastName { get; set; }
    ....
}

接下来,我定义了两个(简单)模型,这些模型定义了用户可以编辑的数据,应该使用下拉列表分配专家:

public class Order
{
    public int ID { get; set; }
    public string orderNumber { get; set; }
    public int specialistID { get; set; }
    public virtual User specialist{ get; set; }
}

public class Part
{
    public int ID { get; set; }
    public string partNumber { get; set; }
    public string description { get; set; }
    public int specialistID { get; set; }
    public virtual User specialist{ get; set; }
} 

如果用户模型中的每个表都没有导航属性,那么可以使用哪些模型之间的关系?

我是否需要使用其他表来定义关系:User.Id-Order.specialistID和关系:User.Id-Part.specialistID?

实体框架是否有更智能的开箱即用方式?

非常感谢您的回答。 帕斯卡

1 个答案:

答案 0 :(得分:1)

默认情况下,当您将forign-key约束添加到多对一表时,实体框架会将虚拟属性添加到实体类,并将虚拟ICollection 添加到< strong>用户