EF Core 一、重识 EF
重识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的更多相关文章
- [翻译 EF Core in Action 1.9] 掀开EF Core的引擎盖看看EF Core内部是如何工作的
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- EF Core的安装、EF Core与数据库结合
一.新建一个.net core的MVC项目 新建好项目后,不能像以前一样直接在新建项中添加ef, 需要用命令在添加ef的依赖 二.EF Cor ...
- EF Core 二 、 入门 EF Core
入门EF Core 我们将开始真正的EF之旅了,这里使用SqlServer数据,然后DbFirst: 为嘛使用SqlServer,目前公司的整体业务全部在SqlSever,所以很多产品业务都是依托于这 ...
- 万字长文,带你彻底理解EF Core5的运行机制,让你成为团队中的EF Core专家
在EF Core 5中,有很多方式可以窥察工作流程中发生的事情,并与该信息进行交互.这些功能点包括日志记录,拦截,事件处理程序和一些超酷的最新出现的调试功能.EF团队甚至从Entity Framewo ...
- EF Core 的 Code First 模式
0 前言 本文正文第一节,会对 Code First 进行基本的介绍,以及对相关名词进行说明,读者一开始可以不用在这里消耗过多时间,可以先操作一遍例子,再回过头理解. 第二节,以一个简单的例子,展示 ...
- 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 ...
- asp.net core+ef core
asp.net core+ef core 官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html 先来看一 ...
- EF Core in Action 中文翻译 第一部分导航
Entityframework Core in action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core ...
- [翻译 EF Core in Action 1.11] 何时不应该使用EF Core
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
随机推荐
- Monkey常用操作
原文:https://www.cnblogs.com/lauren1003/p/6193277.html 一.Monkey测试原理:Monkey是Android中的一个命令行工具,可以运行在模拟器里或 ...
- 调试与优化:一次数据中心看板 T+1 改 T+0 优化过程
背景 团队目前在做一个用户数据看板(下面简称看板),基本覆盖用户的所有行为数据,并生成分析数据,用户行为数据来源于多个数据源(餐饮.生活日用.充值消费.交通出行.通讯物流.交通出行.医疗保健.住房物业 ...
- spring boot:构建多模块项目(spring boot 2.3.1)
一,为什么要使用多模块? 1,结构更清晰,方便管理 如果只是一个小项目当然没有问题, 但如果功能越增越多则管理越来越复杂, 多模块可以使项目中模块间的结构分离 2,把项目划分成多 ...
- centos6.8 Mysql5.6.22 升级 mysql-5.7.20
一.检查系统环境 二.备份数据库 mysqldump –all-databases > allbackupfile.sql (建议:有条件的话可使用图形化界面备份,操作灵活) 三.下载安装文件 ...
- 利用Docker搭建开发环境
一. 前言 随着平台的不断壮大,项目的研发对于开发人员而言,对于外部各类环境的依赖逐渐增加,特别是针对基础服务的依赖.这些现象导致开 发人员常常是为了简单从而直接使用公有的基础组件进行协同开发,在出现 ...
- 浏览器页面左上角出现undefined
浏览器页面左上角出现undefined, js文档中: let list; list += html代码; 解决办法: let list = html代码;
- QJsonObject 遍历
遍历QjsonObject方式 方式一 QJsonObject::const_iterator it = l_obj.constBegin(); QJsonObject::const_iterator ...
- sql优化整理(一)
sql的编写语法是这样的: SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN < ...
- JUC之线程池-三大方法-七大参数-四种拒绝策略
线程池:重点 三大方法 七大参数 四种拒绝策略 使用池化技术的理由: 我们的程序伴随着创建销毁线程十分浪费资源, 所以使用线程池,先创建线程,随用随取,用完归还 简单来说就是节约了资源. 使用线程池的 ...
- js 小数点失精度
解决方法思路:将小数化成整数后再作运算.具体代码如下: /*** 加法运算,避免数据相加小数点后产生多位数和计算精度损失.** @param num1加数1 | num2加数2*/function ...
