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

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关联模型与数据库。按以下步骤修复:

  1. 创建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!;
    }
}
  1. 注册DbContext服务
    打开Program.cs,添加DbContext的服务注册代码:
builder.Services.AddDbContext<MovieContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("MovieContext") 
        ?? throw new InvalidOperationException("Connection string 'MovieContext' not found.")));
  1. 添加数据库连接字符串
    修改appsettings.json,添加ConnectionStrings节点:
"ConnectionStrings": {
  "MovieContext": "Server=(localdb)\\mssqllocaldb;Database=RazorPagesMovieContext;Trusted_Connection=True;MultipleActiveResultSets=true"
}
  1. 重新生成CRUD脚手架
    右键项目 → 添加 → 新建脚手架项 → 选择「Razor Pages CRUD」,点击添加。在配置窗口中选择Movie作为模型类,MovieContext作为数据上下文类,点击生成即可。

如果操作后仍有报错,可尝试:

  • 清理解决方案后重新生成项目
  • 删除obj和bin文件夹,重新安装所有NuGet包
  • 确认所有包版本与.NET 6兼容(当前6.0.7版本符合要求)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:24:16