【发布时间】:2016-02-18 06:35:00
【问题描述】:
在学习代码优先的 EntityFramework 方法时,我不明白为什么您需要在两个数据集之间“重复”引用,即导航属性以及明确定义的外键。
例如,“注册”与“课程”和“学生”是一对一的关系。在学生的模型类中,您定义一个导航属性,如下所示:
public virtual ICollection<Enrollment> Enrollments { get; set; }
如果您进行迁移,这将在 Enrollments 表中为 Student 的外键创建一列。
但在“Enrollment”类中,您还有一个代表学生外键的属性,如下所示:
public int StudentID { get; set; }
所以我的问题是:在两端定义这种外键关系的目的是什么?我已经看到它只在一端定义了导航属性,并且在另一端只定义了关系。两者的原因是什么?
【问题讨论】:
标签: c# sql-server entity-framework asp.net-mvc-5