EF Core 一、重识 EF

重识EF

EF Core 学习资料://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 是一款受支持的稳定产品,但我们不再对其进行积极开发
然后其他的就是功能特征上的具体差异,可以参考上述连接中地址具体来查看(//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支持的数据库类型

目前支持的数据库?😄 ….. 当然不是,这个基本是支持的版本,如果要查看目前版本支持的数据,请查看连接 //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也有相关的资料指引;
//docs.microsoft.com/zh-cn/ef/efcore-and-ef6/porting/
针对原来EF中Model First,以及Code First的方式进行了阐述说明,来指引进行代码业务的移植;还是蛮贴心的 😄 ….
最近公司的系统升级重构,也是会涉及到老系统的迁移,也是老大难的问题,希望后面能在这方面来点突破,不扯远了 ….

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

Tags: