EF Codefirst Как создать ключ из нескольких столбцов с помощью DataAnnotations - PullRequest
3 голосов
/ 04 февраля 2011

Я пытаюсь получить составной ключ, объявленный в классе с атрибутами и аннотацией данных.

[Key]
[Column(Order=1)]
public Guid Id { get; set; }

[Key]
[Column(Order=2)]
public int Nr { get; set; }

, похоже, не получилось. Все, что я мог найти до сих пор, был какой-то свободный вариант, но я хотел бы сделать это только с аннотациями.

уточнить: Я ищу способ DataAnnotation создать таблицу с первичным ключом, состоящим из 2 полей Id и Nr ...

Спасибо за вашу помощь Andreas

Ответы [ 2 ]

9 голосов
/ 17 августа 2011

Вы можете легко сделать это следующим образом, используя Fluent API:

modelBuilder.Entity<YourClass>().HasKey(obj => new {obj.Id,obj.Nr});

Также вы можете создать отдельный класс, наследуемый от EntityTypeConfiguration, и добавить эту строку в его конструктор:

public class <*Name*>Mapping:EntityTypeConfiguration<*Name*> 

      public <*Name*>Mapping(){
             this.HasKey(obj => new {obj.Id,obj.Nr});
      }
}
0 голосов
/ 04 февраля 2011

Я задавал похожий вопрос на прошлой неделе, но искал свободный синтаксис. Ответ, предоставленный Мортезой (ищите больше его ответов относительно всего, что связано с ef / CTP5 - он потрясающий), также дает синтаксис использования аннотаций данных.

Вот ссылка . Надеюсь, это поможет.

...