EF 4.1:将一个实体映射到多个表时升级后出错

时间:2011-07-21 14:50:50

标签: entity-framework entity-framework-4.1

将工作项目从EF 4.0升级到4.1后,我现在在运行时收到以下错误:

对于“Everybody”类型,多次调用Map,并且至少有一个调用没有指定目标表名。

代码是:

public EverybodyConfiguration()
{
  Map(e => e.Properties(p => new
  {
    p.EverybodyId,
    p.FirstName,
    p.LastName,
    p.Initials,
    p.CapsId,
    p.DateModified
  })).ToTable("Everybody");

  Map(e => e.Properties(p => new
  {
    p.EverybodyId,
    p.Status
  })).ToTable("EverybodyStatus");

  Map(e => e.Properties(p => new
  {
    p.EverybodyId,
    p.Email,
    p.BouncedFlag,
    p.DoNotContactFlag
  })).ToTable("EverybodyEmail");
}

错误消息令人困惑,因为它表示尚未在某处指定表名,但您可以在代码中看到它已有。

这些表都具有相同的主键列名称。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您调用的ToTable是整个实体的映射(链接在Map后面,EntityTypeConfiguration的方法)。您必须使用ToTable的{​​{1}}方法,该方法是EntityMappingConfiguration传递给Action的参数:

Map