复合键的EF映射

时间:2012-08-07 09:44:24

标签: entity-framework-4

public class MyConfiguration : EntityTypeConfiguration<MyCode>
{
  public MyConfiguration()
  {
    HasKey(c => new { c.MyCodeId, c.EffectiveDateFrom, c.EffectiveDateTo });
    Property(c => c.MyCodeId).HasColumnName("MyCode");
    Property(c => c.EffectiveDateFrom).HasColumnName("MyEffectiveDateFrom");
    Property(c => c.EffectiveDateTo).HasColumnName("MyEffectiveDateTo");

    ToTable("My_CODES");

    HasMany(d => d.MyGroups).WithRequired().HasForeignKey(k => k.MyCodeID);
  }
}

这是我在EF4中的配置类。

我已经定义了IList<MyGroup>类型的“MyGroups”属性。

“MyGroup”类没有“EffectiveDateFrom”和“EffectiveDateTo”属性。

抛出异常后的运行时间:

  

System.Data.Edm.EdmAssociationConstraint:关系约束中的从属角色和主要角色中的属性数必须相同。

查询:
如果在父表中使用的所有列在子表中不可用,如何在EF4中创建这种映射?

1 个答案:

答案 0 :(得分:0)

您无法创建此类映射,因为它无效。依赖于实体的外键必须包含在主体实体中定义的复合主键的所有组件。