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

Visual Studio 2017中ASP.NET Core v2基于现有SQL表创建模型的问题

解决Visual Studio 2017 + ASP.NET Core 2从SQL表生成模型的问题

我明白你的困惑——ASP.NET Core 2.x在Visual Studio 2017的脚手架里确实没有直接提供从SQL表生成模型的UI选项,和你之前在视频里看到的传统ASP.NET不一样。别担心,我们可以通过EF Core的命令行工具来实现Database First的需求,步骤很清晰:

1. 安装必要的NuGet包

首先要确保项目里安装了EF Core的工具包和对应的数据库驱动:

  • 打开Tools > NuGet Package Manager > Manage NuGet Packages for Solution
  • 搜索并安装Microsoft.EntityFrameworkCore.Tools(这是提供脚手架命令的核心工具包)
  • 如果用的是SQL Server,还需要安装Microsoft.EntityFrameworkCore.SqlServer;其他数据库请安装对应的驱动包(比如MySQL的MySql.EntityFrameworkCore)

2. 使用Package Manager Console生成模型

这是Visual Studio里最便捷的方式:

  • 打开Tools > NuGet Package Manager > Package Manager Console
  • 在控制台里运行以下命令(替换成你的数据库信息):
    Scaffold-DbContext "Server=你的服务器名称;Database=你的数据库名称;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables 表名1,表名2
    
    • 参数解释:
      • -OutputDir Models:指定生成的模型类要放在项目的Models文件夹下
      • -Tables 表名1,表名2:只生成指定表的模型,去掉这个参数会生成数据库里所有表的模型
      • 如果用SQL Server身份验证,连接字符串改成"Server=你的服务器;Database=你的数据库;User ID=用户名;Password=密码;"

3. (可选)使用.NET CLI命令生成

如果你习惯用终端命令,也可以这样操作:

  • 先确保全局安装了EF Core CLI工具(如果没装过):
    dotnet tool install --global dotnet-ef
    
  • 打开终端,导航到你的ASP.NET Core项目根目录,运行:
    dotnet ef dbcontext scaffold "Server=你的服务器名称;Database=你的数据库名称;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models --tables 表名1,表名2
    

补充说明

ASP.NET Core 2.x之所以没有在脚手架UI里提供这个功能,是因为EF Core的Database First流程在早期版本中主要通过命令行工具实现,后续的ASP.NET Core版本(比如3.x+)在Visual Studio里的脚手架有了更完善的UI支持,但2.x确实需要用命令行方式。生成完成后,你会在指定的文件夹里看到自动生成的模型类和DbContext类,直接就能在项目里使用了。

内容的提问来源于stack exchange,提问作者Thomas Adrian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:09:11