只有累積,沒有奇蹟

2019年4月1日 星期一

[.NETCore] 安裝 Entity Framework Core

前言
最近在開發專案時要在 .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
目前最新版是 2.2 版,按下右邊 install 進行下載,接下來會跳出視窗提案要安裝的套件項目,這畫面不想看可以關掉但是我自己留著是會留意一下安裝了哪一些套件內容
或者是直接在 Package Manager Console 輸入指令安裝,速度會比較快
  • Install-Package Microsoft.EntityFrameworkCore
  • Install-Package Microsoft.EntityFrameworkCore.SqlServer
  • Install-Package Microsoft.EntityFrameworkCore.Tools
安裝完畢之後可以到專案   Dependencies  確認是否有安裝的套件名稱,有的話即代表安裝成功。

建立 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  : 指定產生資料夾名稱
預設會將資料庫中所有的 Table 物件輸出指定資料夾,如果不想輸出 DB 所有的 Table 物件也提供指定 Table 方式,在最後加上參數  -Tables  加入指定 TableName 並以 "," 串接起來要指定的 Table,例如 : -Tables Categories,Employees,就會輸出這三個 Table 物件不會全部輸出;以最常使用的北風資料庫為例
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 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com