Ich habe gerade auf die neueste EF 4.1 code-first mit NuGet aktualisiert und jetzt erhalte ich einen Fehler in Bezug auf mein Mapping.
Ich habe diese Klasse
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; }
}
Und ich erhalte diesen Fehler:
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.
Ich kann es jedoch mit der Fluent-API wie folgt zum Laufen bringen
modelBuilder.Entity<UserApplication>().HasKey(obj => new {obj.UserId, obj.ApplicationId });
Wie kommt es, dass EF den zusammengesetzten Schlüssel, den ich mit Hilfe von Anmerkungen definiert habe, nicht aufnimmt? Ich bin mir ziemlich sicher, dass dies mit einem älteren EF 4.1 funktioniert hat.