如何在EF Code First中映射表拆分?

时间:2011-03-22 11:04:03

标签: .net entity-framework poco ef-code-first entity-framework-4.1

如何使用EF Code First映射表格拆分?例如,here描述了EDMX的表拆分。它允许将具有1:1关系的两个实体映射到同一个表中。我知道我可以使用entity and complex type进行类似的映射,但最大的区别是复杂类型不能延迟加载(或根本不加载),这是表拆分的主要原因。

1 个答案:

答案 0 :(得分:10)

以下是我如何使用EF 4.1(RC)在Code First中进行表拆分。

  1. 定义您的两个实体。确保在两个实体中都包含密钥。此外,在每个指向另一个实体的实体中包含导航属性。
  2. 在OnModelCreating覆盖中。 。 。 一个。将两个实体映射到同一个表。 湾创建两个表之间的关系。

        modelBuilder.Entity<EntityOne>().ToTable("MySingleTable");
        modelBuilder.Entity<EntityTwo>().ToTable("MySingleTable");
    
        modelBuilder.Entity<EntityOne>().HasRequired(p => p.NavToEntityTwo).WithRequiredDependent(c => c.NavToEntityOne);
    
  3. 这对我有用,但我意识到,鉴于RC的新颖性,我只能看到有限而简单的场景。