将两个表组合为单个实体类型

时间:2012-06-08 16:10:09

标签: c# entity-framework

所以我有两个相关表,订单和orderextras的旧系统。订单表将Id作为其主键,将客户名称作为标量属性,将orderextra_Id作为外键。 orderextra只有两个属性,Id作为主键,varchar称为extrainfo。

现在我刚刚开始阅读EF 4.0 Recipes,并且在一开始它演示了将两个表组合成一个实体(所以基本上,我希望extrainfo出现在订单实体上,而不是orderextra作为一个实体)。但是,在该示例中,两个表共享相同的PK。当它们有单独的PK并且其中一个表引用另一个时,是否可以这样做?

2 个答案:

答案 0 :(得分:0)

试试这个:

modelBuilder.Entity<Order>()
    .Map(m =>
    {
        m.Properties(t => new { /* order columns */ });
        m.ToTable("order");
    })
    .Map(m =>
    {
        m.Properties(t => new { /* orderextra columns */ });
        m.ToTable("orderextra");
    });

答案 1 :(得分:0)

在设计器中,在其中一个实体上,从两个表中添加所需的列,然后转到“映射详细信息”窗口。

从那里,您应该看到表格 - &gt; “地图到XXX表”。在其下方,您可以添加另一个表并将列映射到您想要的属性,以便您拥有多个表。