Entity Framework CTP4 и составные ключи - PullRequest
4 голосов
/ 21 июля 2010

Я играл с 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 записей).

Я подозреваю, что проблема с составным ключом, так как ни одна другая сущность не показывает эту проблему.

Любая помощь будет оценена, спасибо:)

1 Ответ

6 голосов
/ 21 июля 2010

Я не тестировал его с моей текущей базой данных и CTP4, но в CTP3 вы создали бы составной ключ, подобный этому:

HasKey(m => new { m.Key1, m.Key2 });
...