ASP.NET Core 使用 Database-First

Select *
Program
Published in
May 27, 2021

紀錄APS.NET Core使用Database-First方式存取資料的操作流程跟步驟。

步驟

  1. 建立專案
  2. 下載套件
  3. 資料庫資料
  4. 執行指令
  5. 注入連線

建立專案

選擇ASP.NET Core Web應用程式

建立完專案後,F5執行即可看到畫面。

下載套件

使用NuGet下載Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Tools

這兩個套件版本必須相同,避免出現版本錯誤的訊息。

資料庫資料

資料庫確認資料庫連線正常,與資料表資料。
以下是連結資料庫MyDB內資料表OrderList中的資料。

執行指令

點選上方工具→NuGet套件管理員→套件管理器主控台。

下方顯示套件管理器主控台。

在主控台輸入指令

Scaffold-DbContext -Connection "Server=資料庫伺服器IP;Database=資料庫名稱;Trusted_Connection=True; User ID=資料庫伺服器名稱;Password=資料庫伺服器密碼" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force -Context MyDBContext

Scaffold-DbContext為Microsoft.EntityFrameworkCore.Tools套件的指令。

-OutputDir指定要輸出到專案目錄下哪個資料夾,上面為Models資料夾。

-Force宣告要複寫原有檔案。

-Context 指定DbContext名稱,沒有指定的話預設為Database的名稱。

輸入完指令後,可以看到Models資料夾底下新增了各Table的Model及MyDBContext.cs。

若此時主控台回覆Missing required argument ‘<PROVIDER>’可以檢查指令空格是否正確,或是重新開啟專案

主控台顯示的黃色字是指,為了安全性著想,連線字串不建議放在MyDBContext.OnModelCreating方法中,建議將連線字串放在configuration中,並以相依性注入的方式連線資料庫。

因此,將MyDBContext.OnModelCreating方法內的連線字串加入至appsettings.json中。

Models/MyDBContext.cs

在appsettings.json中加入

appsettings.json

刪除Models/MyDBContext.cs中OnConfiguring內的程式碼。

Models/MyDBContext.cs

在Startup.cs的ConfigureServices方法中加入程式碼,註冊MyDBContext。

Startup.cs

注入連線

在Controllers/HomeController.cs中加入程式碼,注入MyDBContext。

Controllers/HomeController.cs

建立IActionResult跟View

建立IActionResult跟View,顯示資料庫撈取的資料。

在Controllers/HomeController.cs中加入IActionResult OrderList()。

Controllers/HomeController.cs

在View/Home→右鍵→加入→檢視,命名為OrderList。

View程式碼:

OrderList.cshtml

在_Layout.cshtml中加入OrderList的連結。

_Layout.cshtml

執行畫面

點選上方OrderList連結

從資料表抓出的資料。

--

--