iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
Modern Web

從零開始教你做AspNet7.0購物網站系列 第 8

Day-08 Entity Framework Core 資料庫安裝

  • 分享至 

  • xImage
  •  

Entity Framework Core 基本介紹

再來要裝資料庫,我們使用Entity Framework Core (EF Core) 這個微軟提供的資料庫框架,然後用MySQL資料庫放資料
Entity Framework 是一個 ORM(Object Relational Mapping)框架,可以大幅減少開發時期大量的撰寫資料庫語法進行資料存取,並且能透過強型別來取得與操作物件資料。

另外還有像Dapper,NHibernate,ADO.NET之類的,各位有興趣可以自己去找找~

雖然安裝套件Visual Studio有圖形介面,但我覺得這邊還是直接使用指令比較快,習慣使用圖形介面裝套件的上面的工具裡面,有個管理NuGet套件,一樣可以裝套件,這裡就不示範了~

首先要先安裝 dotnet ef 的全域工具,才能使用dotnet ef的指令

dotnet tool install --global dotnet-ef

接著我們在現有的ASP.NET Core專案底下開啟 終端機 並執行以下指令用來安裝EF Core的nuget套件
(要移動到專案檔案內,就是有Program.cs那層)

dotnet add package Pomelo.EntityFrameworkCore.MySql (--version 指定的版本號碼)

(資料庫的Provider,用來與相對性的資料庫溝通)

dotnet add package Microsoft.EntityFrameworkCore.Design (--version 指定的版本號碼)

(沒有安裝無法透過cli 使用資料庫產生實體)

另外使用.net 7.0要在上面兩個指令後面都加上--version 7.0
因為目前的最新版本是8.0,他會自動用8.0,然後.net 7.0不支援就報錯惹~
(你問我為啥不用.net 8.0?我用的是mac沒有8.0給我選QQ)

安裝完之後要透過以下指令來透過資料庫產生檔案,他會自動產生資料庫上下文檔案,在asp.net Core中就是要建立資料庫連線的核心檔案

dotnet ef dbcontext scaffold "server=localhost;Port=3306;Database=aspnet;User=root;Password=root;" "Pomelo.EntityFrameworkCore.MySql" -o ./Models -c MyContext -f

指令說明:
dotnet ef dbcontext scaffold "<連線字串>" "<使用的資料庫提供者套件>" -o<是否要輸出在另外一個資料夾> <輸出的資料夾> -c <名稱Context> -f

-o 與輸出資料夾沒有填的話,會在當前目錄產生檔案
-c 與名稱Context沒有填的話,會以Database的名稱作為DbContext名稱
-f 則是宣告要複寫原有檔案

指令下完,在你的Model就會自動產出資料庫上下文檔案拉~
如果中間有報錯,可以使用

dotnet build

查看錯誤訊息

在啟動檔案中連接資料庫上下文檔案

最後在開始檔案Program.cs檔案內
這一段

var builder = WebApplication.CreateBuilder(args);

的後面加上

builder.Services.AddDbContext<MyContext>();

(沒加的話你的網站啟動不會連到資料庫喔!)

然後我們明天就來重寫資料庫上下文檔案~
https://ithelp.ithome.com.tw/upload/images/20240822/20122704OFbjdvuFMr.png


上一篇
Day-07 資料表規劃
下一篇
Day-09 資料庫上下文(DbContext )
系列文
從零開始教你做AspNet7.0購物網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言