Я только что обновился до последней версии 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.