1. Dotnet9首页
  2. .NET
  3. ASP.NET Core

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

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

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

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

前言:

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

正文:

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

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

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

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

01 PARTEFCore准备环境

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

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

Nuget安装:

  1. 1.    Microsoft.EntityFrameworkCore——使用EFCore的核心包,支持了
  2. 2.    Microsoft.EntityFrameworkCore.Relational——关系数据库提供者共享EF Core组件

02 PARTEFCore支持本地数据库

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

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

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

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

第二步:定义DbContext上下文:

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

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

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

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

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

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

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

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

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

测试结果如图7  图8

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

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

下期预告

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

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

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

往期精彩:

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

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

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

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

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

原文出处:微信公众号【Eleven 朝夕Net社区】

原文链接:https://mp.weixin.qq.com/s/6ORO2aNf4cWIz4UP_saN-w

本文观点不代表Dotnet9立场,转载请联系原作者。

发表评论

登录后才能评论