昨天我們快速的講完 nuget 套件後,應該對基本的安裝、刪除的操作不陌生,今天的話我們就會來使用nuget 提供的套件來做練習。我們在開發一個專案時,對資料做處理是不可避免的事,想必大家不是第一次寫專案的人一定對資料庫不陌生,資料庫的使用是很常見的,所以今天的話我們就是要來運用nuget上特定的套件來連到我們的資料庫,在 .net 開發中基本上可以分成兩大類「DB-First」和「Code-First」,所以天我也會使用這兩種方式來做練習
首先,我們先去架設我們自己要的資料庫,這裡我是使用 MySQL 來架我的資料庫,由於這裡主要是介紹資料庫的連結,所以架資料庫的動作我就不再多介紹,建議如果不想太麻煩可以使用 Docker 來架自己的資料庫,大家都可以到 Docker Hub 找自己要用的image 例如:MySQL-IMAGE,官網通常都介紹裡面有哪些需要設定的地方
特別講一下,如果使用Visual Studio開發專案的話,軟體會預設開啟SQL Server的資料庫,所以是要用SQL Server的人就不用自己去架設資料庫
需要套件
DB-First顧名思義就是我們會先透過資料庫管理系統設計好我們的資料表後,再透過nuget 特定的套件來做連結
先開啟Studio裡的檢視>其他視窗>套件管理器主控台
,就會出現以下畫面
輸入連結指令
Scaffold-DbContext "ConnectionString" DatabaseProvider -OutputDir Models
ConnectString
Server=localhost;Port=13306;Database=demo-sql;UserID=root;Password=rootroot
Scaffold-DbContext Server=localhost;Port=13306;Database=demo-sql;UserID=root;Password=rootroot Pomelo.EntityFrameworkCore.MySql -o Models -f
首先我們先安裝dotnet ef
dotnet tool install --global dotnet-ef
再來輸入指令
dotnet ef "ConnectionString" DatabaseProvider -OutputDir Models
輸入完後應該就會有Models的資料夾出現,再來我們看看Models裡會有demosqlContext.cs新增的檔案,裡面應該會出現有一段訊息,這裡是我們需要做些更動,會讓我們在執行專案時不用一直做設定
新增資料庫的連結資訊在application.json
在Program.cs
新增連接資料庫的設定
最後把demosqlContext.cs
的warning
內容刪掉就完成了
這裡主要的重點是在使用資料庫管理系統的設定,但是說實在身為工程師怎麼可能不寫code,所以Code-First的方次才是大部分人常使用的,那接下來我就來介紹Code-Frirs到底是甚麼吧
Code-First其時也很好理解,就是我們先在專案下把資料庫需要的相關設定寫好後,再透過指令把資料表寫起來。這裡我會用比較偷懶的方式,先用DB-First把我們的連接設定起來,再新增資料表需要的檔案
先在 Models 裡新增一個User.cs
,裡面要先些資料表裡面相關的設定
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
# 相關模組的引用
namespace demo.Models
{
[Table("User")] # 資料表的命名
public class User
{
[Key] # primary key
[Column("StudentId")] # 欄位名稱
public int Id { get; set; }
[Required] # 必要欄位
[MinLength(4)] # 最小長度
public string Name { get; set; }
[Required]
[EmailAddress] # email的格式
public string Email { get; set; }
[Required]
[MaxLength(30)] # 最大長度
public string Password { get; set; }
[DisplayFormat(DataFormatString ="{yyyy-MM-dd}")] # 特定字串格式
public DateTime Birthday { get; set; }
}
}
在剛剛套件管理器主控台的地方輸入
Add-Migration init
執行完後應該會產生Migration的資料夾,會有一個demosqlContextModelSnapshot.cs
的檔,這就是產資料表必要的東西
再來產生資料表
Update-Database
到這裡就新增成功,只要到資料庫管理系統看有沒有新增成功就好
用dotnet CLI 產生資料表的操作其實差不多,這裡我就只介紹指令就好
產生migration
檔
dotnet ef migrations add init
資料表產生
dotnet ef database update
那如果有想知道更多有關產資料表的內容可以到 link 去找更詳細的介紹,那麼今天的鐵人賽我就介紹到這裡,大家明天建拉~~~