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

.NET EF Core无法查看表数据,版本差异问题求助

排查EF Core无法查看表数据的问题

核心问题定位

从代码和描述来看,问题集中在数据库连接配置不完整、迁移执行流程缺失,以及新版.NET与旧教程的配置差异上,以下是逐步排查方案:


1. 修复DbContext服务配置

你的Startup.cs中注释掉了带连接字符串的AddDbContext配置,当前的services.AddDbContext<AppDbContext>()无法正确读取数据库连接信息,导致EF Core无法定位目标数据库。

修改ConfigureServices中的DbContext配置:

// 替换原有的services.AddDbContext<AppDbContext>();
services.AddDbContext<AppDbContext>(options => 
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnectionString")));

同时确保appsettings.json中存在正确的连接字符串:

{
  "ConnectionStrings": {
    "DefaultConnectionString": "Server=(localdb)\\mssqllocaldb;Database=eTickets3DB;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

2. 完整执行迁移流程

你添加了IDesignTimeDbContextFactory解决迁移初始化问题,但需要完成完整的迁移执行步骤:

  • 打开Package Manager Console,执行生成迁移命令:
    Add-Migration InitialCreate
    
    该命令会生成包含实体模型和种子数据定义的初始迁移文件。
  • 接着执行数据库更新命令,将迁移应用到数据库:
    Update-Database
    

3. 检查种子数据生效情况

你在OnModelCreating中通过HasData添加了Actor的种子数据,需注意:

  • 种子数据仅在迁移应用时写入数据库,修改HasData后需要重新生成迁移并更新数据库。
  • 检查Actor实体的所有必填字段是否在种子数据中都提供了有效值,缺失必填项会导致种子数据写入失败。

4. 适配新版.NET的配置细节

如果你的项目是.NET 6+,旧教程的Startup.cs模式需注意以下细节:

  • 若使用.NET 6+混合模式,确保Program.cs正确引用Startup类:
    var builder = WebApplication.CreateBuilder(args);
    var startup = new Startup(builder.Configuration);
    startup.ConfigureServices(builder.Services);
    
    var app = builder.Build();
    startup.Configure(app, app.Environment);
    app.Run();
    
  • 移除Configure方法中重复的app.UseAuthorization();,避免中间件顺序错误影响功能。

5. 验证数据库与表结构

  • 打开SQL Server对象资源管理器,找到配置的目标数据库(如eTickets3DB),检查是否存在Actors、Movies等预期表。
  • 若表不存在,查看Package Manager Console的迁移日志,排查连接字符串错误、实体模型定义错误等迁移失败原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:14:56