EF 4.1 EntityType has no key - composite

Viewed 1763

I have just upgraded to the latest EF 4.1 code-first using NuGet and now I am receiving an error regarding my mapping.

I have this class

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; }
}

And I am getting this error:

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.

I can however make it work using the Fluent API like this

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

How come EF doesn't pick up the composite key that I have defined using annotations? I am quite certain that this used to work with an older EF 4.1.

2 Answers
Related