關於對Entity Framework Core3.1的理解與總結
- 2020 年 6 月 25 日
- 筆記
- .NET Core, ASP.NET MVC, Entity Franework Core
Entity Framework Core 是一個ORM,所謂ORM也是ef的一個框架之一吧,簡單的說就是把C#一個類,映射到數據庫的一個表,把類裏面的屬性映射到表中的字段。然後Entity Framework Core3.1 是一個長期支持的版本。本人非常樂意對.NET社區繁榮奉獻自己的青春。希望國內以後能夠有越來越多的.NET程序員。
創建了一個.NET Standard類庫。
可以編輯文件查看netStandard版本號,我這裡是一個2.0版本。
順便簡單的說一下netStandard吧,實際上它應該就是一個開源庫,不管是.NET Core還是EntityFramework都可以引用它。就是一個底層類庫,並且該類庫可以在不同的平台運行,ios、mac、linux等。一處編寫多處運行,而且它還是開源的。當然這裡你可以把它改成2.1的版本。
右鍵項目屬性
這樣就該好了。。。
然後又創建了一個類庫,操作和上面一樣,另一個是創建一個控制台應用,這個控制台應用是.NET Core應用的,版本應該是netcoreapp3.1,可以看看
以上準備工作完成後,就開始進行第一步操作,生成數據庫!
在Demo.Main類庫中創建所需要的類
這裡我就簡單的舉個栗子。一個聯賽類,一個是俱樂部類,一個是球員類,分別是一對多的關係。
namespace Demo.Main { /// <summary> /// 聯賽 /// </summary> public class League { public int Id { get; set; } public string Name { get; set; } public string Country { get; set; } } }
using System; using System.Collections.Generic; namespace Demo.Main { /// <summary> /// 俱樂部 /// </summary> public class Club { public Club() { Players=new List<Player>();//以防出現空指針引用 } public int Id { get; set; } public string Name { get; set; } public string City { get; set; } /// <summary> /// 俱樂部成立日期 /// </summary> public DateTime Establishment { get; set; } public string History { get; set; } /// <summary> /// 聯賽導航屬性 /// </summary> public League League { get; set; } /// <summary> /// 一對多,一個俱樂部有多個球員 /// </summary> public List<Player> Players { get; set; } } }
using System; namespace Demo.Main { /// <summary> /// 球員 /// </summary> public class Player { public int Id { get; set; } public string Name { get; set; } /// <summary> /// 球員出生日期 /// </summary> public DateTime DateOfBirth { get; set; } } }
然後就是在Data中引用Main的項目庫
對Data類庫安裝對數據庫操作的相關依賴,也就是方便對Model映射到數據庫。顯而易見,Data類庫就是操作對Model映射到數據的Code first數據庫遷移操作的。
所以必然是少不了上下文類的編寫和操作了。
接下來就是準備遷移操作了,但是對於Demo.Data類庫來說它是一個底層的類庫,所以我們就得通過Demo.App一個控制台應用來去生成數據庫,然後就要通過NuGet包進行一個引用了。
需要對數據庫操作進行可執行文件的操作需要引用一下依賴吧可以說是
這個就裝在Demo.Data項目中
這裡就可以看到它為什麼對數據庫遷移起到作用了
點擊下載即可,而後才能執行數據庫遷移操作
記得在遷移時一定要選擇上下文存在的類的項目也就是Data
然後就是用命令來操作包管理工具了,來具體總結一下吧!
你可以通過給的提示輸入命令也就是get-help NuGet查看具體的一些幫助命令
主要命令應該就是這些,具體解釋可以再去看看
或者輸入get-help entityframework,結果如下,我們用到的就是Add-Migration(添加遷移)、Update-Database(更新數據庫)這兩個應該就是比較常用的了。
輸入第一個命令 Add-Migration 這裡需要給個參數(實際上有很多參數)這個參數就是會在生成的時間戳後面定義的Name參數