【ITOO】为什么使用EF?

        连接数据库,为什么使用EF,很少问过自己这个问题。一直都是在追赶,前人在使用什么,后面就学习什么,很容易就没有了激情,但仍想着能像他们一样,成长为大牛。

         但是这样会很累,虽然在这个过程中,学到了很多知识,也成长了不少。就好像是自己开着一辆车,看到前面有一辆在跑,自己二活没说,一脚油门就穷追不舍了,跑了很多路,动力很容易不足。很少在使用某个技术的时候问过自己这个问题:EF是什么?为什么使用EF,什么情况下使用?如果不使用EF会怎样?还有什么东西可以代替它?

什么是EF?

         EF是entity framework的简称,他是一个实体框架,此框架可以理解成微软的一个ORM产品。简单来说就是对概念性应用程序编程,将数据库表映射到实体中。
         我们在model中添加的一个.edmx文件就是一个EF的数据模型
                                                              【ITOO】为什么使用EF?_第1张图片 

EF的选择

        认识到EF选型的问题,是性能优化的时候。使用原生的ADO.net速度远远比使用EF映射快的多。但是为什么选择EF,是结合实际情况来定的。比如,开发一个小型的web程序,并且不做更多的数据操作。这种就没有必要选择使用EF;但是开发大型的系统,甚至是平台,对于数据操作不仅多,频繁。还要求开发的时候,效率高,不用调用数据时,还在写sql语句,性能方面只能不断进行优化了。从这两方面看,选择速度快还是性能优的,并不能武断。速度和性能相互制约,但是总有个平衡点。

什么情况下不使用EF

  • 实时的应用程序。
  • 对程序有非常的性能要求, 需要对每个查询进行监控.
  • 频繁插入操作(Insert),  并且EF不支持大数据Bulk 插入。

EF的类

         EF有ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类,这里只介绍第一个ObjectContext。            ObjectContext封装 .NET Framework 和数据库之间的连接。此类用作“创建”、“读取”、“更新”和“删除”操作。主要封装了到数据库的连接,以 EntityConnection 对象的形式;描述该模型的元数据,以 MetadataWorkspace 对象的形式;用于管理缓存中持久保存的对象的 ObjectStateManager对象。


你可能感兴趣的:(【ITOO】为什么使用EF?)