You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 8.0 Blazor登录时IdentityUserLogin主键未定义异常

解决ASP.NET Core 8.0 Blazor中IdentityUserLogin的主键错误
  • 错误根源:你在配置GuardianList实体时,可能意外覆盖或破坏了Identity框架默认的IdentityUserLogin实体配置。Identity的内置实体(比如IdentityUserLogin<TKey>)原本有默认主键配置,但如果OnModelCreating方法中未正确保留Identity的基础配置逻辑,就会触发该错误。

  • 解决步骤:

    1. 检查ApplicationDbContext的OnModelCreating方法,确保优先调用Identity的基础配置:
      protected override void OnModelCreating(ModelBuilder modelBuilder)
      {
          // 必须先调用此行,保留Identity默认实体配置
          base.OnModelCreating(modelBuilder);
          
          // 再配置你的GuardianList视图实体
          modelBuilder.Entity<GuardianList>(entity =>
          {
              entity.ToView("vwGuardianList"); // 映射到数据库视图
              entity.HasNoKey(); // 视图为无键实体,必须添加此配置
          });
          
          // 其他自定义实体配置...
      }
      
    2. 确认GuardianList配置正确:数据库视图属于无键数据集,必须用HasNoKey()标记,同时通过ToView指定对应的数据库视图名称。
    3. 若你手动配置过Identity相关实体(如IdentityUserLogin),检查是否误删了主键配置。IdentityUserLogin<TKey>默认以LoginProvider和ProviderKey组合作为主键,不要随意修改该配置。
  • 额外排查:如果以上操作无效,确认ApplicationDbContext是否正确继承自IdentityDbContext<IdentityUser>(或自定义用户类型),保证Identity的实体集被正确加载。

内容的提问来源于stack exchange,提问作者GeoffreyB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 07:03:27