gpt4 book ai didi

c# - Entity Framework 4.3.1 -> 5.0 异常 : "EntityType has no key defined. Define the key for this EntityType."

转载 作者:太空狗 更新时间:2023-10-29 20:34:32 25 4
gpt4 key购买 nike

在 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,并要求您在模型类中包含以下两个 using 语句,因为一些 EF 数据注释被移动(重定向),一些没有:

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

关于c# - Entity Framework 4.3.1 -> 5.0 异常 : "EntityType has no key defined. Define the key for this EntityType.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com