日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

论ORM之EFCore初篇(快速基于本地数据库实现数据操作)

發(fā)布時(shí)間:2023/12/4 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 论ORM之EFCore初篇(快速基于本地数据库实现数据操作) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


歡迎大家閱讀《朝夕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)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。