dotnet ef是Entity Framework Core(EF Core)的一個命令行工具,用於管理EF Core應用程式的資料庫和代碼。除了提供管理資料庫的命令之外,dotnet ef還可以生成和管理實體和上下文代碼。本文將介紹如何使用dotnet ef動態生成代碼。 一、環境準備 1、項目 ...
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開發跳槽