将两个具有不同主键的表映射到一个实体
本文关键字:映射 一个 实体 两个 | 更新日期: 2023-09-27 18:05:53
我在一个遗留数据库上使用EF制作一个应用程序。在数据库中有两个表是我所关心的。结构(c#形式)看起来像这样:
public class Employee
{
public int employeeID {get; set;} //primary key
public string name {get; set;}
...//other attributes from this table (not relevant)
}
public class EmployeeProfile
{
public int profileID {get; set;} //primary key
public int employeeID {get; set;}
public string favoritemovie {get; set;}
...//other attributes from this table (not relevant)
}
与数据库中的EmployeeProfile
和Employee
呈1 - 1的关系。在我的应用程序中,我想创建一个组合实体,像这样:
public class Employee
{
public int employeeID {get; set;}
public string name {get; set;} //taken from Employee Table
public string favoritemovie { get; set; } //taken from EmployeeProfile table
}
我该怎么做?我听说过实体分割,但它要求表具有相同的主键。
EF已经为您创建了关系。您应该能够通过Employee实体(即Employee)访问EmployeeFile。EmployeeProfile[0]获取与您检索的员工实体相关的员工配置文件)
正如RandomAsianGuy所述,从雇员实体跳转到概要实体很简单。
如果你坚持要创建这个合并实体,那么你要寻找的是实体框架中的每类型表(TPT)映射继承,使用Employee作为基类并从Employee派生EmployeeProfile。
下面是使用EDMX的TPT继承的MSDN演练:
http://msdn.microsoft.com/en-us/data/jj618293