.NET 一行命令輕松生成EF Core項目框架
前言
一、環(huán)境準備
1、項目準備
用VS 2022新建一個.NET 6的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包管理器->程序包管理控制臺
執(zhí)行
dotnet tool install --global dotnet-ef --version x.x.x
注:這里的包版本要和上面的版本一致,這個包直接通過右鍵管理程序nuget包方式安裝會報沖突錯誤,誰知道原因可以說一下。
安裝成功標志
二、生成代碼
在VS 2022中點擊項目右鍵,選擇"在終端中打開"。
在命令行中運行以下命令,生成實體類,模型的代碼:
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后面是數(shù)據(jù)庫鏈接字符串,--output-dir參數(shù)指定輸出目錄,--force參數(shù)表示強制覆蓋生成的文件。
運行這個命令將生成一個或多個實體類的代碼。
--context參數(shù)為指定上下文類的名稱。
亦可以用以下命令一鍵生成。
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的文件夾中。
這里沒有指定上下文,默認上下文的文件名為數(shù)據(jù)庫名稱。
效果如下:
片段代碼如下:
小插曲:
在生成代碼時遇到如下問題:
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 證書鏈是由不受信任的頒發(fā)機構(gòu)頒發(fā)的。)
解決方法直接在“數(shù)據(jù)庫連接字符串最后面”增加證書信任的配置。;TrustServerCertificate=true。
結(jié)語
使用dotnet ef可以輕松地生成實體和上下文類的代碼。在EF Core應(yīng)用程序中,這是一個非常方便的工具,因為它可以減少手動編寫代碼的時間,并提供了基本的代碼框架,使您可以專注于業(yè)務(wù)邏輯的實現(xiàn)。
本文介紹了它的實現(xiàn)步驟,僅供參考,希望本文對你有所收獲,同時歡迎留言和吐槽。
轉(zhuǎn)自:翔星
鏈接:mp.weixin.qq.com/s/BpBS88M_ukyTgTeE-ZZMnQ
