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

ASP.NET Core新项目迁移未激活,数据库交互报错求助

解决Blazor项目中AspNetUsers表不存在及数据库未自动创建问题

核心原因

你虽然有生成的迁移文件,但EF Core并未自动将迁移应用到数据库,导致手动创建数据库后缺少身份验证相关的表(如AspNetUsers)。

分步解决方法

  • 确认连接字符串一致性
    检查appsettings.json中的DefaultConnection数据库名称,和你手动创建的数据库名称完全匹配(当前连接字符串中的库名是aspnet-2baf3df8-f795-4732-b452-3cd5855e64a4),SQL Server默认不区分大小写,但建议完全一致避免意外问题。

  • 执行EF Core迁移命令
    这是关键步骤,用来将迁移文件中的表结构同步到数据库:

    1. 若用Visual Studio,打开包管理器控制台(路径:工具 → NuGet包管理器 → 包管理器控制台),确保“默认项目”选中你的Blazor项目,执行命令:
      Update-Database
      
    2. 若用.NET CLI,在项目根目录打开终端,执行:
      dotnet ef database update
      
  • 验证Program.cs配置正确性
    确保数据库上下文和身份验证服务配置正确,示例代码如下:

    // 配置DbContext
    builder.Services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
    
    // 配置身份验证,关联DbContext
    builder.Services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
        .AddEntityFrameworkStores<ApplicationDbContext>();
    

    同时确认你的ApplicationDbContext类继承自IdentityDbContext<ApplicationUser>,这样才会包含AspNetUsers等身份表的映射配置。

  • 重置迁移(可选,若上述步骤无效)
    如果旧迁移文件存在异常,可重置后重新生成:

    1. 删除项目中Migrations目录下的所有文件
    2. 包管理器控制台执行:
      Add-Migration InitialCreate
      
      或.NET CLI执行:
      dotnet ef migrations add InitialCreate
      
    3. 再次执行Update-Database同步到数据库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:17:42