重识EF

EF Core 学习资料:https://docs.microsoft.com/zh-cn/ef/core/dbcontext-configuration/

本为作为EF Core学习的开始,只是简单聊下EF Core,以及一些开发上的问题

这里重点描述几个重点:

1.EF Core 是 .Net 再跨平台趋势下的新的ORM框架,也必然是趋势;(并非EF不能用了)

2.EF Core 3.1 通过使用 .NET Standard 2.0 在 .NET Core 和 .NET Framework 上运行。 但 EF Core 5.0 不会在 .NET Framework 上运行

3.Entity Framework 6 (EF6) 是专为 .NET Framework 设计的对象关系映射器,但支持 .NET Core。 EF6 是一款受支持的稳定产品,但我们不再对其进行积极开发

然后其他的就是功能特征上的具体差异,可以参考上述连接中地址具体来查看(https://docs.microsoft.com/zh-cn/ef/efcore-and-ef6/);

现在业务系统中基本都在使用ORM框架,为什么要使用EF Core?

1.可以一定程度上节省生产力,不必从 ADO.NET 从头开始

现在回想起来,确实发展好快,刚开始都是自己完全手写,从DbConnection,DbCommand,DataAdapter等。

还记得那常用的五个对象吗?

欢迎大家一起来怀旧,觉得代码敲着敲着时间就过去了。。。

2.更好的多数据库支持

如果业务要切换数据库,那有ORM框架的一定相对来说会轻松点,否则底层全部SQL会改死人,要么系统中原来就做好了兼容,准备了多套SQL,这个代价我觉得比用ORM要大得多了

公司的业务系统也面临切换数据库的考验,后面也会和大家来交流这方面内容

3.更加注重业务领域的搭建,不必太过关注数据库

这个ABP框架也是类似的思想(ABP是我另外一个系列的内容,可以去看看)

一、来看下EF以及EF Core受支持的应用以及环境

可以看到,EF Core 可以运行于多个框架之上,包括Net Core,Net Framework,UWP(Universal Windows Platform Windows通用应用平台)等;通过依托于Net Core,就可以实现跨平台了,当然还是上面提到的 EF Core 5.0 不会再 .Net Framework上面运行,这点大家要清楚哦

二、EF的开发方式

序号 类型 EF Core EF
1 DB First 支持 支持
2 Code First 支持 支持
3 Model First 不支持 支持

重点说明:EF Core不支持Model First,其实Model Frist我基本没怎么使用,只是当初学习的时候接触过,后面基本没怎么使用。。。

三、EF Core支持的数据库类型



目前支持的数据库? ..... 当然不是,这个基本是支持的版本,如果要查看目前版本支持的数据,请查看连接 https://docs.microsoft.com/zh-cn/ef/core/providers/?tabs=dotnet-core-cli;

题外话,记得Core刚开始的时候,我们当时有个业务系统是Oracle的,但是整体迁移到Core之后发现竟然没有Oracle的连接程序,当时有SqlServer.ManagedDataAccess等,就是没有 Oracle 的支持,所以但是自己写了一个,可以在 Nuget上下载使用 'Citms.Oracle.ManagedDataAccess',还是有几千个下载量,说明微软还是太慢了,开始竟然不支持Oracle ..... 你们有遇到哪些坑 .....

如果大家想要发布一个自己的Nuget包,请参考我其他系列文章哦,来分享自己好用的包

目前Core对数据访问的支持还是不错的,所以很多公司的业务也都开始往Core迁移,针对迁移类的业务,Ef Core也有相关的资料指引;

https://docs.microsoft.com/zh-cn/ef/efcore-and-ef6/porting/

针对原来EF中Model First,以及Code First的方式进行了阐述说明,来指引进行代码业务的移植;还是蛮贴心的 ....

最近公司的系统升级重构,也是会涉及到老系统的迁移,也是老大难的问题,希望后面能在这方面来点突破,不扯远了 ....

今天是EF Core系列的开始,后续会开始分享交流具体的使用,希望大家一起来参与O

EF Core 一、重识 EF的更多相关文章

  1. [翻译 EF Core in Action 1.9] 掀开EF Core的引擎盖看看EF Core内部是如何工作的

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  2. EF Core的安装、EF Core与数据库结合

    一.新建一个.net core的MVC项目                         新建好项目后,不能像以前一样直接在新建项中添加ef, 需要用命令在添加ef的依赖      二.EF Cor ...

  3. EF Core 二 、 入门 EF Core

    入门EF Core 我们将开始真正的EF之旅了,这里使用SqlServer数据,然后DbFirst: 为嘛使用SqlServer,目前公司的整体业务全部在SqlSever,所以很多产品业务都是依托于这 ...

  4. 万字长文,带你彻底理解EF Core5的运行机制,让你成为团队中的EF Core专家

    在EF Core 5中,有很多方式可以窥察工作流程中发生的事情,并与该信息进行交互.这些功能点包括日志记录,拦截,事件处理程序和一些超酷的最新出现的调试功能.EF团队甚至从Entity Framewo ...

  5. EF Core 的 Code First 模式

    0 前言 本文正文第一节,会对 Code First 进行基本的介绍,以及对相关名词进行说明,读者一开始可以不用在这里消耗过多时间,可以先操作一遍例子,再回过头理解. 第二节,以一个简单的例子,展示 ...

  6. ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First

    ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库. Entity Frame ...

  7. asp.net core+ef core

    asp.net core+ef core 官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html 先来看一 ...

  8. EF Core in Action 中文翻译 第一部分导航

    Entityframework Core in action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core ...

  9. [翻译 EF Core in Action 1.11] 何时不应该使用EF Core

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

随机推荐

  1. linux centos 04

    1.python的虚拟环境 1.将当前机器上的解释器作为一个 本地,复制出的很多歌 虚拟解释器 物理机上的 本体解释器 ,什么事也不做 分身1:  解释器1:虚拟环境1     运行django  1 ...

  2. IDEA SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统

    先放上github地址:spike-system,可以直接下载完整项目运行测试 SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统 技术栈:SpringBoot, MyS ...

  3. linux(centos8):用tr替换或删除字符

    一,tr命令的用途 tr命令可以替换或删除文件中的字符 它从标准输入设备读取数据, 处理完成将结果输出到标准输出设备 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnbl ...

  4. zookeeper在生产环境中的配置(zookeeper3.6)

    一,zookeeper中日志的配置 1,快照文件snapshot的目录: dataDir=/data/zookeeper/data 存储快照文件snapshot的目录.默认情况下,事务日志也会存储在这 ...

  5. python操作excel xlwt (转)

    Python中xlrd和xlwt模块使用方法   阅读目录 安装 xlrd模块使用 xlwt模块 xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 回到顶部 安装 ? ...

  6. Ambari仓库安装教程

    Ambari仓库安装教程 如果用户需要后续使用Ambari server进行安装Hadoop则必须搭建一个内部的yum源,否则直接下载速度将会很慢,当然该服务仅要搭建一个即可,可以一直使用. 一.Ce ...

  7. java安全编码指南之:ThreadPool的使用

    目录 简介 java自带的线程池 提交给线程池的线程要是可以被中断的 正确处理线程池中线程的异常 线程池中使用ThreadLocal一定要注意清理 简介 在java中,除了单个使用Thread之外,我 ...

  8. 【git冲突解决】: Please commit your changes or stash them before you merge.

    刚刚使用 git pull 命令拉取代码时候,遇到了这样的问题: error: Your local changes to the following files would be overwritt ...

  9. Vue富文本编辑器(图片拖拽缩放)

    富文本编辑器(图片拖拽缩放) 需求: 根据业务要求,需要能够上传图片,且上传的图片能在移动端中占满屏幕宽度,故需要能等比缩放上传的图片,还需要能拖拽.缩放.改变图片大小.尝试多个第三方富文本编辑器,很 ...

  10. 字节跳动2020Java面经,你离高薪就只差一片面试题了

    前言 经历了惨痛的春招与秋招之后,也积攒了一些面经,希望能对大家有所帮助.由于字数限制需要答案的可以关注GZH[程序员空间] 免费领取完整版PDF 其他 什什么是幂等?什什么情况下需要考虑幂等?你怎么 ...