EF4 CTP5-多对一列重命名

问题描述

| 如何覆盖EF4中外键列的认约定以指定其他列名? 例如,我有一个实体,它具有一个称为Parent的属性,该属性引用了另一个相同类型的实体。 EF4尝试通过查找名为EntityId的外键来解决该关系,但是在我的数据库模式中,它是Entity_Id。如何告诉EF FK列名称不是EntityId? 我尝试了以下方法
modelBuilder.Entity<SomeEntity>()
  .HasOptional(m => m.Parent)
  .WithMany()
  .IsIndependent()
  .Map(m => m.MapKey(k => k.Id,\"Entity_Id\")));
但是我有个例外:saying1。 有什么帮助吗? 谢谢!     

解决方法

首先:升级到EF 4.1 RTW。 CTP 5已过时,并且可能包含许多现在已修复的错误。 如果您已完成升级,则以下各项应能起作用:
modelBuilder.Entity<SomeEntity>()
    .HasOptional(m => m.Parent)
    .WithMany()
    .Map(c => c.MapKey(\"Entity_Id\"));