Właśnie zaktualizowałem do najnowszej wersji EF 4.1 przy użyciu NuGeta, a teraz otrzymuję błąd dotyczący mojego mapowania.EF 4.1 EntityType nie ma klucza - kompozyt
mam tej klasy
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; }
}
i otrzymuję ten błąd:
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.
mogę jednak, że praca przy użyciu Fluent API jak ten
modelBuilder.Entity<UserApplication>().HasKey(obj => new {obj.UserId, obj.ApplicationId });
Jak to się stało EF nie odbiera klucza złożonego, który zdefiniowałem za pomocą adnotacji? Jestem przekonany, że działało to przy starszej wersji EF 4.1.
ten sam problem jak ty Czy kiedykolwiek znaleźć rozwiązanie – Pandincus
nie, nie zrobiłem W końcu zdecydowałem się zdefiniować wszystkie klawisze z wykorzystaniem DbModelBuilder – kfuglsang
sam problem, zabawną częścią jest to, że mam dwa klasy z kluczem kompozytowym, jeden kompiluje, drugi nie. –