4

我正在使用 EntityFramework CTP4 并决定将其应用于我当前的项目之一。该应用程序使用 SQLServer 数据库,并且有一个带有复合键的表。比如说,表“MyEntity”具有“Key1”和“Key2”作为外键(单独)和复合主键。

我做了一个从 EntityConfiguration 派生的配置类:

class MyEntityConfiguration : EntityConfiguration<MyEntity>
{
    public MyEntityConfiguration()
    {
        HasKey(m => m.Key1);
        HasKey(m => m.Key2);
    }
}

然后在我的 DataContext(派生自 DbContext)中:

    public DbSet<MyEntity> MyEntities { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new MyEntityConfiguration());
    }

问题是,当我查询“MyEntities”的所有记录时:

var entities = from e in MyModel.Instance.MyEntities
               select e;

我得到了一个非常奇怪的结果,其中第一条记录重复了 18 次,然后第二条记录重复了 18 次(对于记录,我的表有 36 条记录)。

我怀疑问题出在复合键上,因为没有其他实体显示此问题。

任何帮助将不胜感激,谢谢:)

4

1 回答 1

6

我没有用我当前的数据库和 CTP4 测试它,但是在 CTP3 中你会创建一个这样的复合键:

HasKey(m => new { m.Key1, m.Key2 });
于 2010-07-21T13:03:34.217 回答