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