Tôi vừa mới nâng cấp lên phiên bản EF 4.1 mới nhất bằng NuGet và bây giờ tôi nhận được lỗi liên quan đến ánh xạ của mình.EF 4.1 EntityType không có khóa - composite
Tôi có lớp này
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; }
}
Và tôi nhận được lỗi này:
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.
Tôi tuy nhiên có thể làm cho nó hoạt động bằng cách sử dụng API thạo như thế này
modelBuilder.Entity<UserApplication>().HasKey(obj => new {obj.UserId, obj.ApplicationId });
Tại sao EF không nhận khóa tổng hợp mà tôi đã xác định bằng chú thích? Tôi khá chắc chắn rằng điều này được sử dụng để làm việc với một EF 4.1 cũ hơn.
gặp vấn đề tương tự như bạn bạn đã bao giờ tìm thấy một giải pháp – Pandincus
không, tôi không cuối cùng tôi quyết định để xác định tất cả các phím sử dụng DbModelBuilder cùng một vấn đề – kfuglsang
, phần thú vị là tôi có hai các lớp học có khóa tổng hợp, một biên dịch, số còn lại không .. –