本文章是根據 微軟MVP solenovex(楊旭)老師的視頻教程撰寫而來,再加上自己的一些理解,
視頻教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR
GitHub原始碼:https://github.com/hllive/LearnEFCore3.1
Entity Framework Core就是一個ORM,什么是ORM?Entity Framework Core能把C#里的類映射到資料庫里的表,然后屬性就映射到欄位上,
Entity Framework Core 3.1 是微軟長期支持版本,3.1是一個長期支持的版本,而且從EFcore3.0開始是向后開辟了一個新時代,因為3.0和2.0之間的差異還是比較大,所以學3.1是一個比較好的選擇,在2020年底NET5出來之后,也應該出來一個相應的版本,但是跟這個3.1差別應該不會太大,
首先建三個Model或在資料庫中建三張表,
假如是一個足球聯賽,其包括:League(聯賽),Club(足球隊、俱樂部),Player(運動員) 三個都是一對多的關系
1、創建專案
- 1、打開Visual Studio 2019-->創建新專案-->選擇【空白解決方案】-->輸入解決方案名稱-->創建完成
- 2、創建類別庫:選擇解決方案右擊-->添加-->新建專案-->選擇【類別庫(.NET Standard)】[圖1]也可以選擇【類別庫(.NET Core)】-->最后給類別庫起名為Models
- 3、再創建一個類別庫,起名為Data
- 4、再創建一個【ASP.NET Core Web應用程式】[圖2],起名為WebApi,創建web應用程式選擇API[圖3]



5、最后的專案結構

2、添加Model
在Models專案中添加三個Model :League(聯賽),Club(足球隊、俱樂部),Player(運動員),
建好三個模型后,在Data類別庫參考Models類別庫
// 聯賽
public class League
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Country { get; set; }//國家
}
//運動員
public class Player
{
public Guid Id { get; set; }
public string Name { get; set; }
public DateTime Birth { get; set; }
}
//足球隊
public class Club
{
public Club()
{
Players = new List<Player>();//為了以后使用不會遇到空參考
}
public Guid Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
public DateTime DateOfEstablishment { get; set; }//成立日期
public string History { get; set; }//歷史成績
public League League { get; set; }//聯賽
public List<Player> Players { get; set; }//運動員串列
}
3、安裝Entity Framework Core相關包
在Data類別庫中通過NuGit安裝兩個包
- 1、Microsoft.EntityFrameworkCore.SqlServer
- 2、Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Tools包中會包含Microsoft.EntityFrameworkCore.Design包
- 在Data類別庫中參考Models類別庫
- 在WebApi應用程式中參考Data類別庫(不用參考Models類別庫也同樣能使用Models下的類,因為Data類別庫已經參考了Models類別庫,它們有級聯依賴關系)
4、映射資料庫
將Model映射到資料庫里,首先要建立一個AppDbContext類,在Data類別庫中;這個類需要繼承DbContext,
AppDBcontext中包括包含了所有邏輯,比如與資料庫互動、資料變化追蹤等
為讓三個Model能在Context中正常作業,將三個Model暴露成DbSet型別
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options)
: base(options) { }
public DbSet<League> Leagues { get; set; }
public DbSet<Club> Clubs { get; set; }
public DbSet<Player> Players { get; set; }
}
三個Model寫好后,還需要將類映射到資料中,也就是映射資料庫的三個表,與資料庫連接就需要資料庫連接字串
在WebApi應用程式中的appsettings.json檔案中添加如下配置:
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=EFCoreDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
在Startup類的ConfigureServices方法下注入資料庫背景關系依賴
services.AddDbContext<AppDbContext>(optionsAction =>
optionsAction.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

博客文章可以轉載,但不可以宣告為原創
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/67.html
