实体框架 - 离开外国身份栏的意义

时间:2016-02-15 19:00:23

标签: entity-framework

我一直在阅读和查看有关EF的大量资源,但是 - 有时 - 我看到一些例子,省略了特定实例的外键ID。其他时候,他们把它放进去。将它留在或取出它会有什么影响?

例如:

public class Student
{
  public int TeacherID { get; set; }
  [Required]
  public Teacher Teacher { get; set; }
}

public class Teacher
{
  public virtual List<Student> Students { get; set; }
}

VS

public class Student
{
  [Required]
  public Teacher Teacher { get; set; }
}

public class Teacher
{
  public virtual List<Student> Students { get; set; }
}

1 个答案:

答案 0 :(得分:0)

与EF一起使用时,表和实体始终需要主键。 关于外键 - 数据库中的依赖表仍然需要外键,但相应的实体不必具有外键列的属性。如果您的模型中不包含外键属性,您将最终拥有独立关联。 This post描述了独立协会和外键关联之间的区别。