EF中的复合键是否有效?

时间:2012-01-24 17:18:39

标签: c# entity-framework testing

我首先开始使用EF 4.1代码。

我有一个像这样的实体表:

public AMapping()
{
   Property(x => x.Counter).IsRequired();
   HasKey(x => x.AID);
   HasKey(x => x.BID);

   HasRequired<A>(x => x.A)
      .WithMany(y => y.CList)
      .HasForeignKey(f => f.AID);

   ToTable("A");
}

表格列如下所示:

  AID(PK, FK, int, not null)
  Counter(int, not null)
  BID(PK, FK, int, not null)

在编写保存集成测试时,它会出现以下错误:

  

无法将值NULL插入列'BID',表'Sprint3.dbo.A';   列不允许空值。 INSERT失败。

但我可以看到我传递了一个整数值。

首先是对EF 4.1代码中的复合主键有任何限制吗?

1 个答案:

答案 0 :(得分:3)

HasKey(x => new { x.AID, x.BID});

从未使用它,只是在昨天的文档中看到它:)