问题描述
|
如何覆盖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\"));