如何修复VS2022中Razor Pages CRUD脚手架错误?
修复Razor Pages脚手架生成时的System.InvalidOperationException错误
针对你遇到的Razor CRUD脚手架生成失败问题,可尝试以下解决方案:
统一代码生成工具与EF Core版本
当前项目中EF Core相关包版本为8.0.8,但Microsoft.VisualStudio.Web.CodeGeneration系列包版本为8.0.5,版本不匹配会引发兼容性异常。将所有代码生成相关包升级至8.0.8,保持与EF Core版本一致:<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration" Version="8.0.8" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.8" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Version="8.0.8" />移除潜在冲突的第三方包
项目中引用的Nancy(2.0.0)是独立Web框架,可能与ASP.NET Core代码生成工具存在依赖冲突。暂时移除该包引用,再尝试生成脚手架:<!-- 暂时注释或删除该行 --> <!-- <PackageReference Include="Nancy" Version="2.0.0" /> -->通过Package Manager Console手动执行生成命令
若VS界面生成失败,可尝试在Package Manager Console中执行更详细的生成命令,获取精准错误信息:Scaffold-RazorPage -Model 你的模型类名 -DataContext 你的DbContext类名 -PagesDirectory Pages/目标目录名替换命令中的占位符为项目实际的模型类、DbContext类名称及目标页面目录。
清理并重建项目
- 右键项目选择「清理」
- 手动删除项目根目录下的
bin和obj文件夹 - 重新生成项目后,再次尝试生成脚手架
检查DbContext配置正确性
确认你的DbContext正确继承自DbContext或IdentityDbContext,且在Program.cs中已正确注册:builder.Services.AddDbContext<YourDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("YourConnectionString")));同时验证
appsettings.json中的连接字符串配置无误。
内容的提问来源于stack exchange,提问作者kyros
相关产品推荐
相关产品推荐

