开发者

EF4 CTP5 - Many To One Column Renaming

How do I override the default convention for the foreign key column in EF4 to specify a different column name?

For example, I have one entity with a property called Parent that references to other one of the same type.

EF4 tries to resolve the relation by looking for the foreign key named EntityId, but in my DB schema it is Entity_Id. How do I tell EF that the FK column name is not EntityId?

I've tried the following:

开发者_StackOverflow中文版modelBuilder.Entity<SomeEntity>()
  .HasOptional(m => m.Parent)
  .WithMany()
  .IsIndependent()
  .Map(m => m.MapKey(k => k.Id, "Entity_Id")));

But I get an exception saying: Sequence contains more than one matching element.

Any help on this?

Thanks!


First: Upgrade to EF 4.1 RTW. CTP 5 is outdated and contains potentially many bugs which are fixed now.

If you have done the upgrade the following should work:

modelBuilder.Entity<SomeEntity>()
    .HasOptional(m => m.Parent)
    .WithMany()
    .Map(c => c.MapKey("Entity_Id"));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜