C# EF中的复合键有效吗?

C# EF中的复合键有效吗?,c#,entity-framework,testing,C#,Entity Framework,Testing,我首先开始使用EF4.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);

我首先开始使用EF4.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插入表“Sprint3.dbo.A”的列“BID”中; 列不允许空值。插入失败

但是我可以看到我传递的是一个整数值

EF 4.1代码中是否有关于组合主键的约束

HasKey(x => new { x.AID, x.BID});
从未使用过,只是昨天在文档中看到:)