我刚刚升级到最新的EF 4.1代码优先使用的NuGet现在我收到关于我的映射错误。EF 4.1的EntityType没有密钥 - 复合
我有这个类
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.
我可以然而使它工作使用这样
modelBuilder.Entity<UserApplication>().HasKey(obj => new {obj.UserId, obj.ApplicationId });
的流畅API怎么来EF不拿起我已经使用注释定义组合键? 我敢肯定,这与使用旧的EF 4.1工作。
有你你有没有找到一个解决同样的问题 – Pandincus
不,我没有在最后,我决定来定义所有使用DbModelBuilder – kfuglsang
同样的问题的关键,有趣的部分是我有两个类复合键,一个汇总,其他没有.. –