Я пытаюсь использовать составной первичный ключ на 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.
}
Вот класс Project:
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 предлагают добавить аннотацию "Колонка заказа", которую у меня уже есть. Я пропустил что-то очевидное
Спасибо за то, что вы читаете это далеко) -