EF Core 2.0中怎么用DB First通过数据库来生成实体
要在EF Core使用DB First首先要下载三个Nuget包,在Nuget的Package Manager Console窗口中依次敲入下面三个命令即可:
Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design(这个Nuget包还要安装在启动项目,否则后面执行Scaffold-DbContext命令时会失败)
Install-Package Microsoft.EntityFrameworkCore.Design
当然你也可以用图形化的Nuget包管理器来下载这三个程序包。
之后在Package Manager Console中敲入如下命令,即可在项目中生成数据库各个表的相应Entity和DbContext:
Scaffold-DbContext "Server=localhost;User Id=sa;Password=1qaz!QAZ;Database=TestDB" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -f
其中-OutputDir 可以声明在项目的某个文件夹路径下生成所有实体,上例中我们就将所有数据库实体生成到了Entities这个文件夹下,-f参数表示如果以前已经生成过实体文件了,那么就强制覆盖以前生成的文件,如果不用-f参数,在-OutputDir的路径下如果有同名的实体文件那么上面的命令会报错,导致生成失败。
另外也可以用-t参数来声明,只生成数据库中一张表的实体:
Scaffold-DbContext "<ConnectionString>" Microsoft.EntityFrameworkCore.SqlServer -t <tablename> -f
还可以使用-Context参数来声明生成DbContext类的名字,-Schemas参数来声明只为某些SCHEMA下的数据库对象(表、视图等)生成实体类,如下所示:
Scaffold-DbContext "Server=localhost;User Id=sa;Password=1qaz!QAZ;Database=TestDB" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -f -Context MyDbContext -Schemas "dbo","RAW","src"
如果执行命令时,报SQL Server SSL证书错误,可以在连接字符串中加入参数TrustServerCertificate=True,如下所示:
Scaffold-DbContext "Server=localhost;User Id=sa;Password=1qaz!QAZ;Database=TestDB;TrustServerCertificate=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -f
可以参考:To handle multiple schemas in one DBContext
Scaffold-DbContext命令的所有参数解释可以参考这里
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架