Too*_*eey 9 c# entity-framework
我有这两个非常简单的课程.
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public Group Group { get; set; }
}
public class Group
{
public int Id {get;set;}
public ICollection<Person> Teachers { get; set; }
public ICollection<Person> Students { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望EF保持Teachers
分离,Students
但是他们都混杂在一张Person
桌子里,无法区分它们.
有任何想法吗?
有两种方法可以做到;
第一:在Person
对象中使用标记或枚举
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public Group Group { get; set; }
public bool IsFaculty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
要么
public enum PersonType { Teacher, Student };
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public Group Group { get; set; }
public PersonType PropPersonType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
第二:面向继承的工作对象.这种方法有我的偏好,因为如果你想扩展它,它很容易管理和扩展.
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public Group Group { get; set; }
}
public class Student : Person
{
public int Year { get; set; }
// other student related fiels.
}
public class Teacher : Person
{
public List<Course> Courses { get; set; }
// other teacher related fields
}
Run Code Online (Sandbox Code Playgroud)
那你Group
就是
public class Group
{
public int Id {get;set;}
public ICollection<Teacher> Teachers { get; set; }
public ICollection<Student> Students { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2627 次 |
最近记录: |