暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【朝夕技术专刊】论ORM之EFCore初篇(快速基于本地数据库实现数据操作)

朝夕Net社区 2021-05-08
762


欢迎大家阅读《朝夕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. 1.    Microsoft.EntityFrameworkCore——使用EFCore的核心包,支持了

  2. 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;这个过程是非常必要的。

下期预告

【朝夕Net社区技术专刊】第7期:

EFCore 如何连接关系型数据库做详解



本期福利


如果看完本文让你有所收获,
别忘转发扩散,和更多人分享学习的快乐!
扫码关注公众号朝夕Net社区回复”第六期“
即可获取本期配套教学视频及课件!


往期精彩:


【朝夕技术专刊】Core3.1WebApi_Filter-Authorize详解

【朝夕技术专刊】Core3.1WebApi_Filter多种注册方式支持依赖注入

【朝夕技术专刊】WebApi部署多服务器配置Nginx负载均衡


《朝夕Net社区技术专刊》持续更新,欢迎扫码关注



文章转载自朝夕Net社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论