论ORM之EFCore初篇(快速基于本地数据库实现数据操作)
歡迎大家閱讀《朝夕Net社區技術專刊》第6期
我們致力于.NetCore的推廣和落地,為更好的幫助大家學習,方便分享干貨,特創此刊!很高興你能成為忠實讀者,文末福利不要錯過哦!
前言:
今天準備帶大家一站式學習ORM框架--EFCore;這里給大家介紹EF支持的本地數據庫、單元測試、模型生成、數據遷移等。后續內容將持續更新!
正文:
說起ORM框架,我現在依舊感嘆,我覺得ORM框架真是我們應用型系統開發的一大福利;其實早在好多年前,我個人曾經使用泛型+反射封裝了一套通用的數據庫訪問層;那時候還覺得,哇,牛掰的很,好高級的樣子;但是從我見到這些成型的OMR框架的時候,原來ORM框架竟然如此簡單!那ORM框架是什么呢?
ORM 對象關系映射(Object Relational Mapping),如下圖所示,其實就是以面向對象的思想對數據庫的訪問操作做個封裝,開發者在使用的時候,不需要關注數據庫的各種Sql語句,通過對OMR的操作,達到對數據庫數據的增刪改查。讓開發者降低對數據庫的學習成本;一個字,就是爽!
下面我就EFCore的一些常規用法做一下做以下介紹:
01
PART
EFCore準備環境
本地演示環境:Visual Studio2019 --- Vsersion:16.4.4 ? +? NetCore3.1.2
個人建議使用Vs2019 升級最新版即可!
Nuget安裝:
1.??? Microsoft.EntityFrameworkCore——使用EFCore的核心包,支持了
2.??? Microsoft.EntityFrameworkCore.Relational——關系數據庫提供者共享EF Core組件
02
PART
EFCore支持本地數據庫
在實際的項目開發中,我們一般都是使用EFCore去連接各種關系型數據庫,例如SqlServer、Orcale、MySql等;在EFCore支持了本地數據庫(安裝Vs的時候自帶的數據庫),像我們在學習或者或者在出EFCore的學習Demo 的時候可以做一些測試工作;當然在之前的.NetFramework環境下的EF也是支持的;下面我就EFCore連接本地數據庫展示一個單元測試的Demo。
第一步:在解決方案下創建一個單元測試如圖1
圖1
圖2
之前在.NetFramework環境下的EF,支持有多種和數據庫的連接,Codefirst 數據庫先行,DbFirst數據庫先行,ModelFirst模型先行;在EFCore中更加推崇CodeFirst,更加推崇從代碼先行;如果不是初學者,應該都是知道EF是通過上下文DbContext對數據庫做操作的;所以需要定義DbContex;代碼如下圖:
第二步:定義DbContext上下文:
如此就可以使用這個DbContext,有上下文,有配置信息DbContextOptions配置參數;那配置參數DbContextOptions怎么配置呢?如圖4;這使用到了內存數據庫,索引需要Nuget引入程序包:Microsoft.EntityFrameworkCore.InMemory;這個包就是支持內存數據庫。
圖3
第三步:定義配置信息參數DbContextOptions
圖4
以上做好準備工作:定義好DbContext上下文;上下文需要的配置信息就可以直接通過上下文DbContext訪問內存數據庫了。
第四步:還需要定義實體,ORM框架大部分都是通過實體訪問數據庫做數據的增刪改查的:
如圖5
圖5
第五步:就可以去調用測試一下了:如圖6,測試結果如 圖7
圖6
測試結果如圖7? 圖8
圖7
圖8
那么以上7步描述EFCore基于本地數據庫已經做了一個簡單的新增查詢,還沒有涉及到我們工作中使用的關系型數據庫;可能有同學會疑惑,這樣做有啥意義呢?其實在我們實用EFCore的時候,尤其是在初期,為了調試測試,快速的出一個EFCore的Demo;這個過程是非常必要的。
總結
以上是生活随笔為你收集整理的论ORM之EFCore初篇(快速基于本地数据库实现数据操作)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【项目升级】集成Quartz.Net J
- 下一篇: 跟着“土牛”学架构知识