无法在“ApplicationUser”上配置密钥,因为它是派生类型,但 ApplicationUser 上没有密钥配置

2023-11-25

我正在尝试使用 ApplicationUser 自定义 IdentityUser,我按照微软文章中的步骤操作,但是当我运行应用程序时,我在方法上收到此错误base.OnModelCreating(modelBuilder);:

System.InvalidOperationException HResult=0x80131509 消息=A 键 无法在“ApplicationUser”上配置,因为它是派生的 类型。必须在根类型“IdentityUser”上配置密钥。如果 您不打算将“IdentityUser”包含在模型中, 确保它不包含在您的上下文的 DbSet 属性中, 在对模型构建器的配置调用中引用,或从 模型中包含的类型的导航属性。
来源=Microsoft.EntityFrameworkCore StackTrace:位于 Microsoft.EntityFrameworkCore.Metadata.Internal.EntityType.SetPrimaryKey(IReadOnlyList1 properties, ConfigurationSource configurationSource) at Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder.PrimaryKey(IReadOnlyList1 属性、ConfigurationSource 配置源)位于 Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder.PrimaryKey(IReadOnlyList1 clrProperties, ConfigurationSource configurationSource) at Microsoft.EntityFrameworkCore.Metadata.Builders.EntityTypeBuilder1.HasKey(表达式1 keyExpression) at Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserContext5.c__DisplayClass20_0.b__0(EntityTypeBuilder1 b) at Microsoft.EntityFrameworkCore.ModelBuilder.Entity[TEntity](Action1 构建动作)在 Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserContext5.OnModelCreating(ModelBuilder builder) at Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext8.OnModelCreating(模型构建器 建设者)在 Assisente_de_Estagio.Data.ApplicationDbContext.OnModelCreating(模型构建器 modelBuilder) 在 C:\Users\gui\source\repos\Assistancee De Estágio\Assistancee de Estagio\Data\ApplicationDbContext.cs:第 40 行
在 Microsoft.EntityFrameworkCore.Infrastruct.ModelCustomizer.Customize(模型构建器 modelBuilder、DbContext 上下文)位于 Microsoft.EntityFrameworkCore.Infrastruct.RelationalModelCustomizer.Customize(模型构建器 modelBuilder、DbContext 上下文)位于 Microsoft.EntityFrameworkCore.Infrastruct.ModelSource.CreateModel(DbContext 上下文、IConventionSetBuilder conventionSetBuilder、IModelValidator 验证器)在 Microsoft.EntityFrameworkCore.Infrastruct.ModelSource.c__DisplayClass5_0.b__1() 在System.Lazy`1.ViaFactory(LazyThreadSafetyMode模式)

上下文代码:

public partial class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
    {
    }

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
    public virtual DbSet<Curso> Curso { get; set; }
    public virtual DbSet<Documento> Documento { get; set; }
    public virtual DbSet<OpcaoRequisito> OpcaoRequisito { get; set; }
    public virtual DbSet<ProgressoDoUsuario> ProgressoDoUsuario { get; set; }
    public virtual DbSet<Requisito> Requisito { get; set; }
    public virtual DbSet<RequisitoDeDocumento> RequisitoDeDocumento { get; set; }
    public virtual DbSet<RequisitoDeUsuario> RequisitoDeUsuario { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
    }

应用程序用户.cs

public class ApplicationUser : IdentityUser
{

}

您需要将代码中使用 IdentityUser 的所有位置替换为 ApplicationUser。

例如在脚手架中的 Identity/Pages/Account/注册.cshtml.cs你需要做这些改变:

private readonly SignInManager<IdentityUser> _signInManager;
private readonly UserManager<IdentityUser> _userManager;

To

private readonly SignInManager<ApplicationUser> _signInManager;
private readonly UserManager<ApplicationUser> _userManager;

我遇到了同样的问题。在我将代码中的所有使用 IdentityUser 替换为 ApplicationUser 后,错误消失了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在“ApplicationUser”上配置密钥,因为它是派生类型,但 ApplicationUser 上没有密钥配置 的相关文章

随机推荐

  • Java user.home 被设置为 %userprofile% 并且未被解析

    我们公司最近从 Windows XP 升级到 Windows 7 Enterprise JDK安装不再设置用户主页到用户目录的完整路径 而是将 user home 设置为 userprofile 这导致 Eclipse Maven 等应用程
  • Express 4.0 中的“扩展”是什么意思?

    我在我的应用程序中使用 Express 和 body parser app use bodyParser urlencoded extended false 但是 express 4 0 中的 扩展 是什么意思 我找到了这个 extende
  • 如何清除Python脚本中间的所有变量?

    我正在Matlab中寻找类似于 clear 的东西 一个命令 函数 它从工作区中删除所有变量 从系统内存中释放它们 Python中有这样的东西吗 编辑 我想编写一个脚本 在某个时候清除所有变量 以下命令序列确实删除了every当前模块的名称
  • Google API 密钥的有效期是多久?

    我正在使用获取播放列表的详细信息Youtube API V3使用 API 密钥 我找不到任何有关API KEY有效期的信息 我想确保在应用程序过期之前为其重新生成新的 API 密钥 公共 API 密钥位于底部谷歌开发者控制台API 和身份验
  • 播放 HTTP Live Streaming 视频时访问 AVPlayer 的数据

    我正在使用 AVPlayer 播放 HTTP 实时流媒体视频 有什么办法可以访问播放器的缓存数据并将其保存在本地吗 太长了 这并非不可能 但结果很可能不会那么好 请记住 HTTP 视频流实际上由多个带宽流组成 其中每一个都被分为更小的 MP
  • ffmpeg 格式设置,矩阵 bt709

    有谁知道我如何实现以下色彩空间 bt 709 通过 FFmpeg 这是我的文件中现在的内容 正如你所看到的Format settings Matrix默认情况下 我该如何设置它 格式设置 矩阵 自定义或标准 组件原色 BT 709 传输特性
  • border-radius 应该裁剪内容吗?

    当容器有时 我的容器中的内容不应该被切断吗 border radius HTML 和 CSS 示例 progressbar height 5px width 100px border radius 5px buffer width 25px
  • 从网站打开新的 Outlook,mailTo 链接太长,*.eml 文件密件抄送字段未加载

    我正在尝试打开一个 eml使用 Microsoft Outlook 2010 文件并遇到问题bcc field 这是我的eml file To email protected Subject Mail Subject cc email pr
  • 如何向soapVars添加属性

    我想创建具有如下属性的soapVars
  • Firebase/Android - 定期丢失数据库连接

    我遵循了 Firebase 身份验证和数据库的文档 全新安装后一切正常 用户可以注册或登录 数据按应有的方式检索 按应有的方式写入 超快 超干净 耶 然后 通过 android Studio 重新启动几次后 数据库的东西就不再工作了 重新启
  • 即使线程中的方法已返回,为什么 Thread.Join() 仍会挂起?

    我有一个 WPF 应用程序 它使用一些库代码进行身份验证 需要在单线程单元线程中运行 我的方法是生成一个单独的线程来获取身份验证对象 阻塞直到线程返回 然后继续执行 然而 在some即使线程方法已返回 我的应用程序也会挂在 Thread J
  • 在docker中更改JAVA_HOME

    我想要 dockerise 的遗留 Web 应用程序使用一些旧的类 例如com sun image codec jpeg ImageFormatExceptionJava SE7 之前都支持 现在在 docker 容器中默认的 jdk 获取
  • 如何在 R 中重用管道运算符长链的部分?

    我有一组管道操作员链 gt 用不同的数据集做不同的事情 例如 dataset gt mutate gt filter gt rowwise gt summarise gt etc 如果我想重用这些链的某些部分 有没有办法做到这一点 而不仅仅
  • 线程忽略键盘中断异常

    我正在运行这个简单的代码 import threading time class reqthread threading Thread def run self for i in range 0 10 time sleep 1 print
  • 使用 IronPython 访问 Pandas 库

    我的目标是将 Python 连接到 NET 以实现流程 我正在使用 IronPython Python 部分涉及一些计算 我使用 Pandas 库 有没有办法连接 IronPython 和 Pandas 我发现使用 IronPython 我
  • 在 Swift 中对 PDF 进行注释/绘图

    我正在编写一个应用程序 其中包含多个 PDF 文档 我将根据用户的输入在屏幕上显示这些文档 显示后 我希望允许用户在 PDF 上绘图 注释 然后我想保存带有绘图 注释的 PDF 以供以后使用 我一直在无休止地搜索有关 PDF 注释的教程 但
  • 文本提取 - 逐行

    我正在使用 Google Vision API 主要是为了提取文本 我工作得很好 但对于我需要 API 扫描输入行的特定情况 在移动到下一行之前吐出文本 然而 该 API 似乎正在使用某种逻辑 使其从左侧从上到下扫描 然后移动到右侧并进行从
  • NGINX:如何在一台服务器或域名中设置多个端口?

    我是 Nginx 新手 我的设置遇到问题 我希望我的服务器在公共上使用多个端口运行 例如 server listen 443 ssl server name
  • D 中异常处理的开销

    在 D2 编程语言中 使用异常处理对性能有何影响 尤其 如果我不写异常处理代码怎么办 如果我这样做了 但没有抛出任何异常怎么办 如果我这样做并且抛出异常怎么办 异常处理是否会导致错过任何优化机会 是否可以像许多 大多数 C 实现中那样禁用异
  • 无法在“ApplicationUser”上配置密钥,因为它是派生类型,但 ApplicationUser 上没有密钥配置

    我正在尝试使用 ApplicationUser 自定义 IdentityUser 我按照微软文章中的步骤操作 但是当我运行应用程序时 我在方法上收到此错误base OnModelCreating modelBuilder System In