首先在EF代码中设计一对多关系的最佳实践

时间:2013-08-02 09:49:17

标签: c# entity-framework ef-code-first

假设我有两个参与者,例如学生部门。他们之间有一对多的关系。

Student.cs

public class Student 
   {
      public int StudentId { get; set; }
      public int StudentName { get; set; }
      public int StudentRoll { get; set; }

      public int DepartmentId { get; set; }
      public Department Department { get; set; }
   }

Department.cs

 public class Department 
   {
      public int DepartmentId { get; set; }
      public int DepartmentName { get; set; }

      public ICollection<Student> Students { get; set; } 
   }

我可以使用

而不是public ICollection<Student> Students { get; set; }
public List<Student> Students { get; set; } 

public IEnumerable<Student> Students { get; set; } 

我在Web上的各种教程中看到了它。我应该使用哪一个?我知道我使用哪一个并不重要,但结果总是一样的。我想知道什么是最佳做法。

2 个答案:

答案 0 :(得分:2)

不确定它是否是“最佳做法”,但我按照您的方式进行,但也使用虚拟

   public class Student 
   {
      public int StudentId { get; set; }
      public int StudentName { get; set; }
      public int StudentRoll { get; set; }

      public int DepartmentId { get; set; }
      public virtual Department Department { get; set; }
   }

   public class Department 
   {
      public int DepartmentId { get; set; }
      public int DepartmentName { get; set; }

      public virtual ICollection<Student> Students { get; set; } 
   }

我从Scott Gu blog中选择了这种方法。所以我希望它的好东西

答案 1 :(得分:0)

一个好的做法是:

public virtual IList<Student> Students { get; set; }

这允许您使用IList实现的方法,并允许Entity Framework在运行时创建动态代理。