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