Entity Framework入门疑问:与Hibernate有关联吗?如何根据SQL Server生成.cs类
基于已有SQL Server数据库生成EF Core实体类操作指南
你的思路完全符合Entity Framework Core的设计,这种基于已有数据库反向生成实体类的模式叫做Database First(数据库优先),和你之前使用Hibernate的开发流程逻辑一致,无需担心过往经验干扰。
前期准备
首先在你的C#项目中安装以下必要NuGet包:
Microsoft.EntityFrameworkCore.SqlServer:SQL Server数据库适配包Microsoft.EntityFrameworkCore.Design:EF设计时工具基础依赖- 如果你使用Visual Studio包管理器控制台执行操作,额外安装
Microsoft.EntityFrameworkCore.Tools - 如果你使用dotnet CLI命令行执行操作,全局安装EF工具,执行命令:
dotnet tool install --global dotnet-ef
操作方式
方式1:dotnet CLI命令行生成
在项目根目录打开终端,执行脚手架生成命令,模板如下:
dotnet ef dbcontext scaffold "你的SQL Server连接字符串" Microsoft.EntityFrameworkCore.SqlServer -o 输出目录 -c 自定义DbContext名称
示例命令参考:
dotnet ef dbcontext scaffold "Server=.;Database=你的数据库名;Trusted_Connection=True;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -c AppDbContext
常用参数说明:
-o:指定生成的实体类、DbContext文件的输出文件夹路径,示例中会统一输出到项目的Models目录下-c:自定义生成的DbContext上下文类的名称,不填默认使用数据库名+Context后缀--force:如果后续数据库结构更新,需要覆盖本地已生成的文件时添加该参数即可
方式2:Visual Studio可视化向导生成
如果不想手动敲命令,可以用VS内置功能操作:
- 右键目标项目 → 点击「添加」→ 选择「新建项」
- 在新建项窗口的「数据」分类中,选择「ADO.NET实体数据模型」
- 按照向导提示选择「EF Core数据库上下文」,输入数据库连接信息,勾选需要映射的表、视图等对象
- 确认后会自动生成所有对应的.cs实体类和DbContext文件
生成完成后每张表会对应一个独立的.cs实体文件,属性和表结构完全匹配,同时生成的DbContext中会包含所有表对应的DbSet<T>属性,你可以直接按照EF Core的开发规范进行后续开发。
内容的提问来源于stack exchange,提问作者Dominique
相关产品推荐
相关产品推荐

