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

dotnet ef是Entity Framework Core(EF Core)的一个命令行工具,用于管理EF Core应用程序的数据库和代码。除了提供管理数据库的命令之外,dotnet ef还可以生成和管理实体和上下文代码。本文将介绍如何使用dotnet ef动态生成代码。

一、环境准备

1、项目准备

用vs2022新建一个.NET6的asp.net core mvc项目,然后按照:工具->Nuget包管理器->nuget管理解决方案包。安装一些nuget包

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools

或者用nuget命令安装

Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

2、安装dotnet ef

工具->Nuget包管理器->程序包管理控制台

执行 dotnet tool install --global dotnet-ef --version x.x.x  注:这里的包版本要和上面的版本一致,这个包直接通过右键管理程序nuget包方式安装会报冲突错误,谁知道原因可以说一下。

安装成功标志

图片

二、生成代码

在vs2022中点击项目右键,选择"在终端中打开"。在命令行中运行以下命令,生成实体类,模型的代码:

dotnet ef dbcontext scaffold "Data Source=.;Initial Catalog=Wan;Persist Security Info=True;User ID=sa;Password=654321;TrustServerCertificate=true" Micros
oft.EntityFrameworkCore.SqlServer --output-dir Entities --context NewDbContext

上面脚本解释:

scaffold后面是数据库链接字符串,--output-dir参数指定输出目录,--force参数表示强制覆盖生成的文件。运行这个命令将生成一个或多个实体类的代码。--context参数为指定上下文类的名称。

图片

亦可以用以下命令一键生成。

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应用程序中,这是一个非常方便的工具,因为它可以减少手动编写代码的时间,并提供了基本的代码框架,使您可以专注于业务逻辑的实现。本文介绍了它的实现步骤,仅供参考,希望本文对你有所收获,同时欢迎留言和吐槽。

****参考:微软官网文档

来源公众号:DotNet开发跳槽

原文链接:https://www.cnblogs.com/xbhp/p/17358602.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.NET使用一行命令轻松生成EF Core项目框架 - Python技术站

(0)
上一篇 2023年5月5日
下一篇 2023年5月5日

相关文章

  • C# datagridview、datagrid、GridControl增加行号代码解析

    下面我将详细讲解如何在C#中为DataGridView、DataGrid和GridControl控件添加行号,并提供两个示例。 1. DataGridView添加行号 在DataGridView中添加行号,可以借助其自带的行头显示索引的功能来实现。主要步骤如下: 设置行头的显示模式为行号:dataGridView1.RowHeadersVisible = t…

    C# 2023年5月15日
    00
  • 用C#在本地创建一个Windows帐户(DOS命令)

    创建Windows本地账户可使用 net user命令,该命令可以在DOS命令窗口中运行,也可以使用程序语言编写的命令执行器来执行。 以下是创建一个Windows本地账户的完整攻略: 1. 打开命令提示符 在开始菜单中找到并打开”命令提示符”,或者在开始菜单中键入”cmd”并按回车键。将打开命令提示符窗口。 2. 运行net user命令 在命令提示符窗口中…

    C# 2023年6月7日
    00
  • C#中DataTable 转实体实例详解

    下面是关于“C#中DataTable 转实体实例详解”的完整攻略: 1. 为什么需要将DataTable转为实体实例 在C#中,DataTable是一种非常常见的数据类型。在我们进行数据查询、统计和展示时,经常使用DataTable来存储数据。而在使用DataTable时,我们通常需要将DataTable中的数据转化为我们自定义的实体类型,利用实体的属性和方…

    C# 2023年5月31日
    00
  • C#中的委托使用

    下面是关于C#中委托的详细使用攻略。 什么是委托? C#中的委托是一种类型,它允许将方法作为参数传递给其他方法,并且允许在方法之间创建一个链。委托类型定义了该委托所能关联的方法的签名。 如何定义一个委托? 委托的定义方式类似于定义一个方法。语法格式为:delegate 返回类型 委托类型名称(参数列表);。 其中,返回类型和参数列表决定了委托可以关联哪些方法…

    C# 2023年6月7日
    00
  • C#用委托BeginInvoke做异步线程

    下面是C#用委托BeginInvoke做异步线程的完整攻略: 委托和异步线程 委托(Delegate)是C#中非常重要的概念之一。它是一种类型,允许我们在定义方法的时候,把该方法的引用传递给其他的方法,这样其他的方法就可以“调用”该方法了。委托本身就是一个指针,只不过是用来指向方法的,因此有时候也称之为“方法指针”。 异步线程指的是,我们在执行某些任务时,不…

    C# 2023年6月7日
    00
  • unity scrollRect实现按页码翻页效果

    下面是Unity中ScrollRect实现按页码翻页效果的攻略: 1. 需求分析 首先,我们需要明确我们的需求:利用ScrollRect制作一个翻页效果,实现按页码进行翻页操作。这意味着我们需要按照固定的大小拆分显示内容,每个页面的大小应该相同,并且在翻页时应该有一个平滑的过渡动画。 2. 设置ScrollRect参数 首先,我们需要在Unity中创建一个S…

    C# 2023年6月3日
    00
  • ASP.NET中下载文件的几种实例代码

    ASP.NET中下载文件的几种实例代码可以分为以下几种: 方法1:使用Response对象下载文件 使用Response对象下载文件是最简单和直接的方式,可以在服务器端使用C#代码将文件发送到客户端。 protected void btnDownload_Click(object sender, EventArgs e) { string filePath …

    C# 2023年5月31日
    00
  • C#正则检测字符串是否字母数字混编的方法

    下面是详细讲解“C#正则检测字符串是否字母数字混编的方法”的完整攻略。 标题:C#正则检测字符串是否字母数字混编的方法 前言 在开发过程中,有时需要对字符串进行判断,比如判断字符串是否只包含字母和数字,或者判断是否只包含中文字符等。这些可以通过正则表达式进行判断,本文将介绍C#如何通过正则表达式检测字符串是否字母数字混编。 方法 使用正则表达式可以轻松判断其…

    C# 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部