首页 > 其他分享 >.NET使用一行命令轻松生成EF Core项目框架

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

时间:2023-04-27 12:56:33浏览次数:42  
标签:Core ef -- EF 生成 EntityFrameworkCore dotnet NET Microsoft

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开发跳槽

标签:Core,ef,--,EF,生成,EntityFrameworkCore,dotnet,NET,Microsoft
From: https://www.cnblogs.com/xbhp/p/17358602.html

相关文章

  • 《Effective C#》系列之(一)——异常处理与资源管理
    请注意,《EffectiveC#》中的异常处理与资源管理部分实际上是第四章的内容。以下是关于该章节的详细解释。第四章:异常处理与资源管理一.了解异常处理机制异常处理机制使程序员能够在程序运行过程中处理错误情况。C#提供了try-catch-finally语句块来捕获和处理异常。了解不同类......
  • 经典卷积神经网络结构:LeNet-5、AlexNet、VGG
    LeNet-5LeNet-5模型是专门为手写数字识别而设计的经典卷积神经网络。从上图可以看出,LeNet-5总共由输入层、卷积层、池化层、卷积层、池化层、全连接层、全连接层、输出层组成。1、输入层:一张32*32的灰度图像,只有一个颜色通道,深度为1。2、卷积层:将输入与6个高为5,宽为5,深度为1......
  • Codeforces Round 866 (Div. 1) C. The Fox and the Complete Tree Traversal (构造)
    传送门题目大意:  给定一个有n个点的树,我们可以任意选择一个点作为起点,这个点可以跳到跟自己距离为1或者距离为2的点,已经到达的点不能再到达(最终必须回到起点),询问是否存在一种方案可以从一个点出发经过所有的点最终再回到这个点来。  输入一个整数n。紧接着输入n-1条边。大......
  • NET CORE 跨域问题
    在StartUp类里面配置如下代码即可解决跨域问题publicvoidConfigureServices(IServiceCollectionservices){services.AddCors(p=>p.AddPolicy("corsapp",builder=>{builder.WithOrigins("*").AllowAnyMethod().Allo......
  • Codeforces Round 847 (Div. 3) G.Tokens on Graph (构造)
    传送门题目大意  给定一个无向图,我们定义图中有四种点,一种是黑色的点表示终点,并且黑色的点始终是1号点,一种是红色的点,一种是灰色的点,最后一种就是没有颜色的点。  游戏规则:我们必须移动任意一个灰色的点到相邻的点上,如果灰色的点移动到了红色的点上,那么我们可以移动其他灰......
  • 如何通过C#/VB.NET 代码调整PDF文档的页边距
    PDF边距是页面主要内容区域和页面边缘之间的距离。与Word页边距不同,PDF文档的页边距很难更改。因为Adobe没有提供操作页边距的直接方法。但是,您可以通过缩放页面内容来改变页边距。本文将介绍如何在不更改页面大小的情况下使用C#/VB.NET代码调整PDF文档的页边距。增加PDF文档的......
  • CefSharp自定义缓存实现
    大家好,我是沙漠尽头的狼。上文介绍了《C#使用CefSharp内嵌网页-并给出C#与JS的交互示例》,本文介绍CefSharp的缓存实现,先来说说添加缓存的好处:提高页面加载加速:CefSharp缓存可以缓存已经加载过的页面和资源,当用户再次访问相同的页面时,可以直接从缓存中加载,而不需要重新下载和解......
  • Introducing the QCN9074: A Revolutionary New Chip for the Internet of Things
     TheQCN9074isahigh-performancechipdesignedtomeetthedemandingneedsoftheInternetofThings(IoT)market.Withitspowerfulprocessingcapabilities,advancedconnectivityfeatures,andintegratedsecurityandpowermanagementfeatures,theQCN......
  • TrueNAS core :samba文件共享设置中的:2层ACL控制机制
    如题。之所以是2层ACL,首先,复杂的权限控制场景,决定了只是用单纯的、传统的:owner、group、other:方式肯定不能胜任。其次,服务本身是分级的,samba提供的是共享服务,自身需要一套ACL控制;而samba的共享文件及文件目录资源本身是驻留在文件系统之中的——即:文件系统......
  • 界面控件DevExpress Blazor UI v22.2 - 支持.NET 7
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具,该组件拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场......