将数据从2个表映射到1个实体 - 实体框架4

时间:2010-10-07 09:15:10

标签: c# .net entity-framework-4

我被困在这里。

是否可以将实体框架4中的2个不同表格中的数据映射到1个实体。

我在一张桌子上有一堆员工,而在另一张桌子里我有一些项目信息。 我想在一个实体中组合这两个表,并保留跟踪功能等,这可能吗?

我不想使用函数导入,而只是通过实体模型来完成。

任何人都可以提供帮助 - 当我尝试这样做时,我会一直收到以下错误:

错误3024:从第2354行开始映射片段时出现问题:必须指定EntitySet MyProjectTable的所有关键属性(MyProjectTable.PSInitials,MyProjectTable.ProjectID)的映射。

两个键都映射到它们各自的表。 新实体是使用MyProjectTable作为基础。

2个表之间的关系是1 - *

希望你能提供帮助。

/基督教

2 个答案:

答案 0 :(得分:6)

您无法将具有一对多关系的两个表映射到一个实体。如果您不希望将结果投影到代码中的一个对象中,请考虑创建一个视图并将其映射。

根据http://msdn.microsoft.com/en-us/library/bb896233.aspx

  

您应该只将实体类型映射到   多个表如果以下   条件是真的:

     
      
  • 您要映射的表共享一个公用密钥。

  •   
  • 正在映射的实体类型中包含每个类型的条目   基础表。换一种说法,   实体类型代表数据   这两者之间有一对一的对应关系   表;实体类型代表一个   两个表的内连接。

  •   

答案 1 :(得分:1)

这样做的原因非常简单 - 例如,一个数据点表,它们都有五种“类型”之一。显然,为了规范化,'type'将是一个单独的表,但从应用程序的角度来看(使用数据),将所有属性放在一个实体中会更有意义。

所以我们不能用Entity Framework做这个 - 假设的Object-Relational-Mapper。那么,使用这样一个框架的重点是什么呢?