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

Entity framework EF CTP5映射具有不同列名的主键,entity-framework,entity-framework-ctp5,Entity Framework,Entity Framework Ctp5,属性具有名为HasColumnName的fluent方法。哈斯基没有注意到这一点。在CTP4中,可以通过MapSingleType指定不同的列名,但如果我尝试使用Map(它取代了MapSingleType),则无法工作。有什么想法吗?CTP5的API似乎没有提供这种可能性。 我们成功的做法是让ModelBuilder使用错误的键构建其MetaDataWorkspace 然后,在objectContext中构建后,我们在SSPace中搜索物理实体(表和列)的存储,然后通过反射更改“错误”列名的me

属性具有名为HasColumnName的fluent方法。哈斯基没有注意到这一点。在CTP4中,可以通过MapSingleType指定不同的列名,但如果我尝试使用Map(它取代了MapSingleType),则无法工作。有什么想法吗?

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

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

我知道,这远不是正确的方法,但这是我找到的唯一方法。 我们对ObjectBuilder做了一个扩展方法,它替换了这样的列名,因此键映射到正确的列。

这不起作用吗

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

modelBuilder.Entity<Institutes.Institute>().Property(e => e.Id)
    .HasColumnName("InstituteID");
modelBuilder.Entity()
.HasKey(e=>e.Id)
.ToTable(“机构”、“核心”);
modelBuilder.Entity().Property(e=>e.Id)
.HasColumnName(“InstituteID”);

请发布不起作用的代码。谢谢。你找到解决办法了吗?