实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第1张图片

欢迎大家阅读《朝夕Net社区技术专刊》第6期

我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦!

前言:

今天准备带大家一站式学习ORM框架--EFCore;这里给大家介绍EF支持的本地数据库、单元测试、模型生成、数据迁移等。后续内容将持续更新!

正文:

说起ORM框架,我现在依旧感叹,我觉得ORM框架真是我们应用型系统开发的一大福利;其实早在好多年前,我个人曾经使用泛型+反射封装了一套通用的数据库访问层;那时候还觉得,哇,牛掰的很,好高级的样子;但是从我见到这些成型的OMR框架的时候,原来ORM框架竟然如此简单!那ORM框架是什么呢?

ORM 对象关系映射(Object Relational Mapping),如下图所示,其实就是以面向对象的思想对数据库的访问操作做个封装,开发者在使用的时候,不需要关注数据库的各种Sql语句,通过对OMR的操作,达到对数据库数据的增删改查。让开发者降低对数据库的学习成本;一个字,就是爽!

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第2张图片

下面我就EFCore的一些常规用法做一下做以下介绍:

01PARTEFCore准备环境

本地演示环境:Visual Studio2019 --- Vsersion:16.4.4   +  NetCore3.1.2

个人建议使用Vs2019 升级最新版即可!

Nuget安装:

  1. 1.    Microsoft.EntityFrameworkCore——使用EFCore的核心包,支持了

  2. 2.    Microsoft.EntityFrameworkCore.Relational——关系数据库提供者共享EF Core组件

02PART EFCore支持本地数据库

在实际的项目开发中,我们一般都是使用EFCore去连接各种关系型数据库,例如SqlServer、Orcale、MySql等;在EFCore支持了本地数据库(安装Vs的时候自带的数据库),像我们在学习或者或者在出EFCore的学习Demo 的时候可以做一些测试工作;当然在之前的.NetFramework环境下的EF也是支持的;下面我就EFCore连接本地数据库展示一个单元测试的Demo。

第一步:在解决方案下创建一个单元测试如图1

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第3张图片

图1

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第4张图片

图2

之前在.NetFramework环境下的EF,支持有多种和数据库的连接,Codefirst 数据库先行,DbFirst数据库先行,ModelFirst模型先行;在EFCore中更加推崇CodeFirst,更加推崇从代码先行;如果不是初学者,应该都是知道EF是通过上下文DbContext对数据库做操作的;所以需要定义DbContex;代码如下图:

第二步:定义DbContext上下文:

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第5张图片

如此就可以使用这个DbContext,有上下文,有配置信息DbContextOptions配置参数;那配置参数DbContextOptions怎么配置呢?如图4;这使用到了内存数据库,索引需要Nuget引入程序包:Microsoft.EntityFrameworkCore.InMemory;这个包就是支持内存数据库。

图3

第三步:定义配置信息参数DbContextOptions

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第6张图片

图4

以上做好准备工作:定义好DbContext上下文;上下文需要的配置信息就可以直接通过上下文DbContext访问内存数据库了。

第四步:还需要定义实体,ORM框架大部分都是通过实体访问数据库做数据的增删改查的:

如图5

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第7张图片

图5

第五步:就可以去调用测试一下了:如图6,测试结果如 图7

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第8张图片

图6

测试结果如图7  图8

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第9张图片

图7

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第10张图片

图8

那么以上7步描述EFCore基于本地数据库已经做了一个简单的新增查询,还没有涉及到我们工作中使用的关系型数据库;可能有同学会疑惑,这样做有啥意义呢?其实在我们实用EFCore的时候,尤其是在初期,为了调试测试,快速的出一个EFCore的Demo;这个过程是非常必要的。

实体框架ef基于什么_论ORM之EFCore初篇(快速基于本地数据库实现数据操作)_第11张图片

你可能感兴趣的:(实体框架ef基于什么)