好吧,我又回來了,其實一直都想寫一篇關於EF core 的文章去記錄自己在開發時候遇到的問題。
為什么要使用EF框架呢,因為原始的ADO.NET需要編寫大量的數據訪問代碼,所以使用EF會更方便。但是今天只講Code First,Code First非常好用。但是表都需要自己寫代碼去建立,不能可視化建立,提醒大家還是需要習慣不可視化操作為好。
首先是怎么使用EF core呢,需要去安裝Nuget包,我使用的是MySQL數據庫,所以安裝的是Pomelo.EntityFrameworkCore.MySql和Pomelo.EntityFrameworkCore.MySql.Design
可以在Nuget 包管理器里搜索安裝,也可以在Nuget包管理控制台里輸入 Install-Package Pomelo.EntityFrameworkCore.MySql 和
Install-Package Pomelo.EntityFrameworkCore.MySql.Design 安裝。
這里有個大問題就是Pomelo.EntityFrameworkCore.MySql這個包版本不兼容的問題,如果你的.Net core版本是2.1,那么請安裝2.1.0版本,因為2.1.1會報錯。
如果沒有2.1.0版本,那么久安裝最新的,然后在csproj里面修改版本就可以了,如圖:
安裝完之后就可以使用了。
還需要配置的就是在Startup類上,配置DbContext,還有連接字符串在AppSetting.json中
ORM,對象關系映射,通俗點講就是將實體的屬性和字段聯系起來。
下圖就是一個類,包含了很多屬性。
那么如何將它們聯系起來呢。
首先你需要建立一個上下文類,也就是DbContext,別忘了引用Microsoft.EntityFrameworkCore 這個命名空間
這樣就把建立表的代碼寫好了,userID作為主鍵,其他作為屬性,最大長度為32。
當然不要忘了遷移,同樣也需要安裝Microsoft.EntityFrameworkCore.Tools 這個安裝包。
之后就可以在Nuget 包管理控制台執行遷移了。
在Nuget 包管理控制台輸入Enable-Migrations 啟用遷移 然后 Add-Migration name, name是遷移的名字,
然后一個遷移就被添加了,接下來就是執行遷移Update-Database,這樣你會發現你的數據庫多了一張表
完成上述操作之后就可以對數據庫進行操作了,增刪改查之類滴。可以用linq,也可以用lambda表達式。