最近在開發專案時要在 .NET Core 下使用 ORM 進行資料庫操作,第一直覺當然是用微軟強大的 Entity Framework 來解決,但實際操作後發現在 ASP.NET Core 下建立 Entity Framework Core 目前沒有過去 .NET Framework 下 Entity Framework 6.x 操作上來的方便,這篇文章就來介紹安裝 Entity Framework Core (DB First) 的方式,若有問題歡迎提出一起討論或是給予指導。
首先建立一個 .Net Core Console 專案來測試,要建立前需要先至 Nuget 下載對應資料庫的套件,在 EF Core 2.0 截至目前為止提供 21 種 Database Provider,詳細支援的清單以及未來要支援的 Database 有興趣可以看一下官網說明 : 傳送門,今天範例所使用的資料庫是 MS SQL,因此一開始請先至 Nuget 下載套件,分別是
- Microsoft.EntityFrameworkCore
- Microsoft.EntityFrameworkCore.SqlServer
- Microsoft.EntityFrameworkCore.Tools
或者是直接在 Package Manager Console 輸入指令安裝,速度會比較快
- Install-Package Microsoft.EntityFrameworkCore
- Install-Package Microsoft.EntityFrameworkCore.SqlServer
- Install-Package Microsoft.EntityFrameworkCore.Tools
建立 DBContext
在過去 .NET Framework 的 Entity Framework 在建立模型上提供 GUI 介面操作,可以在 Visual Studio IDE 中點選加入 實體資料模型方式,但在 .NET Core 需要自行輸入指令加入資料模型,在建立資料模型前需要知道 MS SQL 的連線字串,取得連線字串步驟如下
Step 1 : 開啟 Visual Studio IDE 的 SQL Server Object Explore
Step 2 : 要建立的 DB 按下右鍵 > 屬性
Step 3 : 複製 connectionString 區段
接著,在 Package Manager Console 輸入以下指令建立資料庫模型
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=yourDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models指令說明
- "Server=(localdb)..." : 指定連線字串
- Microsoft.EntityFrameworkCore.SqlServer : 指定 Data Provider
- -OutputDir : 指定產生資料夾名稱
Scaffold-DbContext "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Northwind;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models\DB輸出成功的話,會自動建立 DBContext 以及產生相關 Table 物件
透過以上步驟,就完成了上面 EF Core 建立 DBContext 的簡單過程說明,如果想了解更多細節可以參考 MSDN 官方說明 : 傳送門
後記
這篇簡單說到在 ASP.NET Core 如何建立 EF Core 的基本流程,從安裝 Microsoft.EntityFrameworkCore 相關套件到建立 DBContext 物件,接著下一步是使用 DBContext 就與過去 .NET Framework 並無太大差異,如果日後有時間會在分享後續實作,若有錯誤與更快的做法歡迎討論與留言,謝謝
參考
Getting Started with EF Core on ASP.NET Core with an Existing Database
0 意見:
張貼留言