![](/img/trans.png)
[英]EntityType ' ' has no key defined. Define the key for this EntityType. - C# Web API Entity Framework
[英]Entity Framework 4.3.1 -> 5.0 Exception: “EntityType has no key defined. Define the key for this EntityType.”
在Entity Framework 4.3.1中,我有以下模型,它们工作正常:
public class BaseUser
{
[Key]
[MaxLength(100)]
public string Username { get; set; }
}
[Table("AppUser")] // Ensures EF Code First uses Table-per-Type
public class AppUser : BaseUser
{
[MaxLength(200)]
public string About { get; set; }
}
升级到EF 5.0后,当我尝试运行此应用程序并访问关联的DbContext时,我收到以下异常:
EntityType 'AppUser' has no key defined. Define the key for this EntityType.
我该如何解决这个问题? 这似乎是一种回归。
此异常是由EF版本混合引起的。
BaseUser是在使用EF 4.3.1的共享项目中定义的。 AppUser在使用EF 5.0的项目中。 这种令人困惑的异常是尝试从尚未升级到EF 5.0的项目中的模型继承的结果。 拆分共享项目并升级此处引用的项目解决了该问题。
如果其他人碰到这一点,值得指出升级有点尴尬。 由于NuGet似乎没有注意到升级的需要,它允许您在其上安装EF 5.0,在安装后将新版本列为4.4,并要求您在Model类中包含以下两个using语句一些EF数据注释被移动(重定向),有些则不是:
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.