翼度科技»论坛 编程开发 .net 查看内容

.NET使用一行命令轻松生成EF Core项目框架

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
dotnet ef是Entity Framework Core(EF Core)的一个命令行工具,用于管理EF Core应用程序的数据库和代码。除了提供管理数据库的命令之外,dotnet ef还可以生成和管理实体和上下文代码。本文将介绍如何使用dotnet ef动态生成代码。
一、环境准备
1、项目准备
用vs2022新建一个.NET6的asp.net core mvc项目,然后按照:工具->Nuget包管理器->nuget管理解决方案包。安装一些nuget包
  1. Microsoft.EntityFrameworkCore.Design
  2. Microsoft.EntityFrameworkCore.SqlServer
  3. Microsoft.EntityFrameworkCore.Tools
复制代码
或者用nuget命令安装
  1. Install-Package Microsoft.EntityFrameworkCore.Design
  2. Install-Package Microsoft.EntityFrameworkCore.SqlServer
  3. Install-Package Microsoft.EntityFrameworkCore.Tools
复制代码
2、安装dotnet ef
工具->Nuget包管理器->程序包管理控制台
执行 dotnet tool install --global dotnet-ef --version x.x.x  注:这里的包版本要和上面的版本一致,这个包直接通过右键管理程序nuget包方式安装会报冲突错误,谁知道原因可以说一下。
安装成功标志

二、生成代码
在vs2022中点击项目右键,选择"在终端中打开"。在命令行中运行以下命令,生成实体类,模型的代码:
  1. dotnet ef dbcontext scaffold "Data Source=.;Initial Catalog=Wan;Persist Security Info=True;User ID=sa;Password=654321;TrustServerCertificate=true" Micros
  2. oft.EntityFrameworkCore.SqlServer --output-dir Entities --context NewDbContext
复制代码
上面脚本解释:
scaffold后面是数据库链接字符串,--output-dir参数指定输出目录,--force参数表示强制覆盖生成的文件。运行这个命令将生成一个或多个实体类的代码。--context参数为指定上下文类的名称。

亦可以用以下命令一键生成。
  1. dotnet ef dbcontext scaffold "Data Source=.;Initial Catalog=Wan;Persist Security Info=True;User ID=sa;Password=654321;TrustServerCertificate=true" Microsoft.EntityFrameworkCore.SqlServer  -o Models
复制代码
-o Models的意思是将生成的实体类文件输出到名为Models的文件夹中。这里没有指定上下文,默认上下文的文件名为数据库名称。
效果如下:

片段代码如下:

小插曲:
在生成代码时遇到如下问题:
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)
解决方法直接在“数据库连接字符串最后面”增加证书信任的配置。;TrustServerCertificate=true。
结语
使用dotnet ef可以轻松地生成实体和上下文类的代码。在EF Core应用程序中,这是一个非常方便的工具,因为它可以减少手动编写代码的时间,并提供了基本的代码框架,使您可以专注于业务逻辑的实现。本文介绍了它的实现步骤,仅供参考,希望本文对你有所收获,同时欢迎留言和吐槽。
****参考:微软官网文档
  1. 来源公众号:DotNet开发跳槽
复制代码
来源:https://www.cnblogs.com/xbhp/archive/2023/04/27/17358602.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具