ASP.NET 动态创建Controller时出现报错问题求助
动态创建Controller报错排查方案
- 检查DbContext注册与定义
确认Program.cs中已正确注册你选择的DbContext类,注册代码示例:
同时确认DbContext类存在符合规范的构造函数:builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } - 检查模型类配置
确认你选择的模型类包含符合规则的主键:要么属性名为Id/「类名+Id」(如ProductId),要么手动添加[Key]特性标记主键,脚手架生成Controller必须依赖主键生成CRUD逻辑。 - 检查命名空间与拼写
确认你在生成器中输入的模型类名、DbContext类名没有拼写错误,大小写与实际定义一致,且对应类所在的命名空间已被项目正确引用。 - 检查依赖包版本匹配
确认项目已安装Microsoft.EntityFrameworkCore.Tools、Microsoft.VisualStudio.Web.CodeGeneration.Design两个NuGet包,且包的大版本与你项目使用的.NET版本、EF Core版本完全一致,版本不兼容会直接导致生成失败。 - 检查项目路径
确认你的项目存放路径没有中文、特殊符号或空格,这类特殊字符会导致代码生成器读取项目文件时解析失败。 - 清理重建项目
先清理解决方案,删除项目下的bin、obj文件夹后重新生成项目,再尝试生成Controller,缓存的编译文件也可能导致生成器报错。
内容的提问来源于stack exchange,提问作者Edberaga
相关产品推荐
相关产品推荐

