EF 4.1 EntityType не имеет ключа - составной

Я только что обновил код до последней версии EF 4.1, используя NuGet, и теперь получаю сообщение об ошибке, касающееся моего сопоставления.

У меня есть этот класс

public class UserApplication
{
    [Key, Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int UserId { get; set; }

    [Key, Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int ApplicationId { get; set; }

    [ForeignKey("ApplicationId")]
    public virtual Application Application { get; set; }

    public DateTime SubscribedDate { get; set; }
}

И я получаю такую ​​ошибку:

System.Data.Edm.EdmEntityType: : EntityType 'UserApplication' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet 'UserApplications' is based on type 'UserApplication' that has no keys defined.

Однако я могу заставить его работать, используя Fluent API, как это

modelBuilder.Entity<UserApplication>().HasKey(obj => new {obj.UserId, obj.ApplicationId });

Почему EF не принимает составной ключ, который я определил с помощью аннотаций? Я совершенно уверен, что раньше это работало со старым EF 4.1.

8
задан Nicholas Petersen 18 February 2016 в 20:36
поделиться