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

Lad*_*nka 8 .net entity-framework poco ef-code-first entity-framework-4.1

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

Dav*_*tin 10

以下是我在Code First中使用EF 4.1(RC)进行表拆分的方法.

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

        modelBuilder.Entity<EntityOne>().ToTable("MySingleTable");
        modelBuilder.Entity<EntityTwo>().ToTable("MySingleTable");
    
        modelBuilder.Entity<EntityOne>().HasRequired(p => p.NavToEntityTwo).WithRequiredDependent(c => c.NavToEntityOne);
    
    Run Code Online (Sandbox Code Playgroud)

这对我有用,但我意识到,鉴于RC的新颖性,我只能看到有限和简单的场景.