[英]Should I store foreign key table as foreign key ID or the C# model of that table in Entity Framework?
标题有点令人困惑,但我想不出其他任何方式放置它。 因此,我将举例说明。
假设我有一个Student
班,一个Student
属于School
班,一个School
可以有很多学生。 然后,我们倾向于为School
模型编写的是:
public class School
{
public int ID { get; set; }
public virtual ICollection<Student> Students { get; set; }
}
对于Student
模型:
public class Student
{
public int ID { get; set; }
public virtual School School { get; set; }
}
因此,您可以看到,由于有EF魔术,我们没有在Student
类中使用外键 SchoolID
,而是映射了实际的School
对象 ,并且将其标记为虚拟,因此也可以延迟加载。
现在,这是否意味着使用EF我们可以安全地删除POCO模型中的所有外键ID,并用对这些对象的实际引用替换它们? 直接引用对象而不是ID是否有不利之处?
我认为最终您将需要外键属性。
如果学生更换学校,则仅希望通过了解SchoolId来更新“关联”属性。
另外,如果您要将新学生添加到现有学校,则必须从相同的上下文中加载学校,否则最终将产生重复的记录
因此,也添加外键属性
public int SchoolId{ get; set; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.