Используйте метод ColumnAttribute или HasKey, чтобы указать порядок составных первичных ключей

Я пытаюсь использовать составной первичный ключ для 2 объектов с родительским -дочерним отношением. Всякий раз, когда я пытаюсь создать новую миграцию, я получаю сообщение об ошибке :

. Не удалось определить составной порядок первичного ключа для типа «Models.UserProjectRole». Используйте метод ColumnAttribute или HasKey, чтобы указать порядок составных первичных ключей.

Согласно ошибке, я добавляю аннотацию Column (Order = X), но ошибка все еще существует и не исчезает, если только я не оставлю только одно поле с ключевой аннотацией. Вот мой объект, который он отключил:

public class UserProjectRole
{
    [Key, Column(Order = 0),DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid UserProjectRoleID { get; set; }

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

    [ForeignKey("ProjectID")]
    public Project Project { get; set; }

    public Guid AppUserGuid { get; set; }

    // followed by a number of unrelated String fields.
 }

Вот класс проекта:

public class Project: Base
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid ProjectID { get; set; }

    public virtual ICollection<UserProjectRole> UserRoles { get; set; }

    // followed by a number of unrelated String fields.

}

Вот часть моего DBContext:

public class SiteContext : DbContext
{

    public DbSet<Project> Projects { get; set; }

    public DbSet<UserProjectRole> UserProjectRoles { get; set; }
}

Я использую VisualStudio 2012 с EF 4.3.1

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

Спасибо, что дочитали до этого места-)

31
задан trailmax 11 August 2012 в 00:52
поделиться