4

属性有一个流利的方法称为 HasColumnName。HasKey 缺少这一点。在 CTP4 中,可以通过 MapSingleType 指定不同的列名,但如果我尝试使用 Map(它取代了 MapSingleType),它就不起作用。有任何想法吗?

4

2 回答 2

2

这不起作用吗?

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

modelBuilder.Entity<Institutes.Institute>().Property(e => e.Id)
    .HasColumnName("InstituteID");
于 2011-02-15T09:18:58.187 回答
0

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

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

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

于 2011-01-07T04:34:04.707 回答