Entity Framework Code First: общий первичный ключ - PullRequest
1 голос
/ 05 мая 2011

У меня есть существующая таблица с первичным ключом в 3 столбцах (1 varchar и 2 integer). Как я могу сказать объектной структуре использовать этот «ключ». Возможно ли использовать modelBuilder, атрибуты или есть другой способ?

спасибо!

1 Ответ

3 голосов
/ 05 мая 2011

В свободном API вы должны использовать анонимный тип:

modelBuilder.Entity<YourType>()
            .HasKey(e => new 
                {
                    e.VarChar,
                    e.Int1,
                    e.Int2
                });

Другой способ - использовать аннотации данных:

public class YourType
{
    [Key, Column(Order = 0)]
    public string VarChar { get; set; }
    [Key, Column(Order = 1)]
    public int Int1 { get; set; }
    [Key, Column(Order = 2)]
    public int Int2 { get; set; }
}

В обоих сценариях важен порядок столбцов. После того, как вы попытаетесь использовать DbSet<YourType>.Find, вам придется вводить ключи в том же порядке. EF также использует порядок внутри.

...