2
我在我的SQL Server数据库中3个表:态关联和拆分表
- 教师
- 学生
- 家长
这些表中的每一个包含一些列其中也有发现例如:
- 姓
- 姓
其他所有列是不同的。这是一个遗留数据库。我无法改变它。
在我的C#代码,我想有:
public partial class Person
{
public string FirstName { get; set; }
public string Surname { get; set; }
public virtual ICollection<Role> Roles { get; set; }
}
public interface Role
{
}
public partial class Teacher : Role
{
public string School { get; set; }
}
public partial class Student : Role
{
public string YearLevel { get; set; }
}
public partial class Parent : Role
{
public string Blagh { get; set; }
}
也就是说,角色和人之间的多态性许多-to-one关联。
我想要这个的原因是因为一个人既可以是老师,也可以是父母。
我的问题是,我应该使用什么技术来从数据库中填充业务对象?
我看了实体框架4.1 DbContext的东西;我喜欢数据注释方法,但它可以做我想要的吗?如果没有,那么Fluent API可以吗?
如果实体框架无法做到这一点,那么NHibernate(最好是使用属性)或Linq-to-SQL呢?
我知道NHibernate可以处理一个多态关联,但是这可以在我们在实体之间拆分表之间完成的吗?