我有一个相当复杂的数据库,我想先映射到代码,但我有一个表需要分成两个单独的类的问题。EF代码首先映射多个类到一个表
A中的表结构的基本示例如下:
Site
----
Id
Name
Person
------
Id
Name
Dob
Address
Rank
Age
SiteId
PersonRoleLink
--------------
PersonId
RoleId
Role
----
Id
Name
基本上是一个网站有很多人,每个人都可以有很多的角色。
取决于人的角色取决于哪些属性被填充。
理想我想一类结构如下:
public class Site {
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Customer> Customers { get; set; }
public virtual ICollection<Employee> Employees { get; set; }
public virtual ICollection<Manager> Managers { get; set; }
}
public class PersonBase {
public int Id { get; set; }
public string Name { get; set; }
public virtual Site Site { get; set; }
}
public class Customer : PersonBase {
public string Name { get; set; }
public DateTime Dob { get; set; }
}
public class Employee: PersonBase {
public int Age { get; set; }
}
public class Manager: PersonBase {
public int Rank { get; set; }
}
凡Customer
,Employee
和Manager
都来自Person
表和依赖在PersonRoleLink
表中的相关链接。
所以,当我打电话类似Site.Managers
行中返回的Person
表是用正确的SITEID,并链接到一个名为“经理”
Role
的那些代码是这种结构可能的第一?如果是这样的话,如何做到这一点呢?如果没有,这个结构有没有可行的替代方案?
由于
很好的答案,谢谢。 – lancscoder