EF CTP5映射具有不同列名的主键

时间:2010-12-30 18:25:24

标签: entity-framework entity-framework-ctp5

属性有一个名为HasColumnName的流畅方法。 HasKey失踪了。在CTP4中,可以通过MapSingleType指定不同的列名,但如果我尝试使用Map(替换了MapSingleType),则它不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

这不起作用吗?

modelBuilder.Entity<Institutes.Institute>()
    .HasKey(e => e.Id)
    .ToTable("Institutes", "core");

modelBuilder.Entity<Institutes.Institute>().Property(e => e.Id)
    .HasColumnName("InstituteID");

答案 1 :(得分:0)

似乎CTP5的API没有提供这种可能性。 我们成功的做法是让ModelBuilder使用错误的密钥构建其MetaDataWorkspace。

然后,在构建它之后,在objectContext中,我们在SSPace中搜索物理实体(表和列)的存储,然后通过反射更改了“错误”列名称的元数据名称。

我知道,这是正确的方法,但它是我发现的唯一方法。 我们为ObjectBuilder创建了一个扩展方法,它替换了这样的列名,因此键映射到正确的列。