Visual Studio 2022添加.NET Core 6.0脚手架Razor页面报错求助
解决ASP.NET Core Razor Pages EF Core脚手架CRUD报错问题
环境信息
- 目标框架:.NET 6
- 已安装NuGet包:
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.7" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.7" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.7" />
报错截图

Movie模型代码
using System.ComponentModel.DataAnnotations; namespace RazorPagesMovie.Models { public class Movie { public int ID { get; set; } public string Title { get; set; } = string.Empty; [DataType(DataType.Date)] public DateTime ReleaseDate { get; set; } public string Genre { get; set; } = string.Empty; public decimal Price { get; set; } } }
问题原因及解决步骤
从报错截图来看,核心问题是未创建并配置对应的DbContext类,EF Core脚手架生成CRUD页面必须依赖DbContext关联模型与数据库。按以下步骤修复:
- 创建MovieContext类
在项目中新建Data文件夹,添加MovieContext.cs文件:
using Microsoft.EntityFrameworkCore; using RazorPagesMovie.Models; namespace RazorPagesMovie.Data { public class MovieContext : DbContext { public MovieContext(DbContextOptions<MovieContext> options) : base(options) { } // 定义对应Movie模型的DbSet public DbSet<Movie> Movies { get; set; } = null!; } }
- 注册DbContext服务
打开Program.cs,添加DbContext的服务注册代码:
builder.Services.AddDbContext<MovieContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("MovieContext") ?? throw new InvalidOperationException("Connection string 'MovieContext' not found.")));
- 添加数据库连接字符串
修改appsettings.json,添加ConnectionStrings节点:
"ConnectionStrings": { "MovieContext": "Server=(localdb)\\mssqllocaldb;Database=RazorPagesMovieContext;Trusted_Connection=True;MultipleActiveResultSets=true" }
- 重新生成CRUD脚手架
右键项目 → 添加 → 新建脚手架项 → 选择「Razor Pages CRUD」,点击添加。在配置窗口中选择Movie作为模型类,MovieContext作为数据上下文类,点击生成即可。
如果操作后仍有报错,可尝试:
- 清理解决方案后重新生成项目
- 删除
obj和bin文件夹,重新安装所有NuGet包 - 确认所有包版本与.NET 6兼容(当前6.0.7版本符合要求)
内容的提问来源于stack exchange,提问作者MOUHAMED FARDOUSI
相关产品推荐
相关产品推荐

