EF(开篇概述)

    Entity Framework是一个ORM(对象关系映射)框架。简单易懂的说,其实就是一个用操作对象的方式去操作数据库的“工具”。ORM工具有很多,比如Dapper、NHibernate等,这两个是相对来说比较常见的。因为我用的是.net开发web,大家都知道.net是微软的产品,EF也是,那肯定不用说,自己家的东西用起来兼容性,稳定性等因素肯定都会融洽的很好。之前我做web开发的时候,底层对数据库开发是通过ado.net,其实就是封装了SqlHelper、OracleHelper以及MySqlHelper等公共类,需要对数据库进行增删查改的时候直接调用就可以实现想要的目的。但是,用久了之后发现这种方式有的时候会比较麻烦,最显而易见的就是要写各种sql语句,如果是稍微复杂点的多表操作的时候就更突出了。后来发现EF可以很好的避免这种糟糕的情况,不仅不用写大量的sql语句、效率相对的提高,更重要的是操作变得非常的简单。所以逐渐的从ado.net慢慢的过渡到使用EF去对数据库进行开发。

    此外,有一点还需要在这里强调一下,就是可能有些人会有误解,是不是我使用了EF,那么ado.net就不需要了。这种卸磨杀驴的想法,我不评论对错,我想表达的是EF底层其实仍然是对ado.net的封装。这不难理解。其实很多东西发展到一定的程度,看似非常复杂,其实 都是在最简单的基础上慢慢累积起来的,最底层的还是基础的东西,只是把这些最基本的东西进行了有效的整合,对其进行很好的呈现。比如Jquery我觉得之前用的就很方便很好,其实也是对javascript的重新封装。我们也可以封装,只不过要花大量的时间,而且有些东西可能考虑的不全面,即使你实现了封装的目的,在真正使用的时候 也可能有些你想不到的bug。所以大家要学会饮水思源,不要会了EF就不理ado.net。

    那么EF到底是怎样帮我们实现对数据库的增删查改的呢。以往对数据库进行操作的时候,比如想增加一条数据,那么就写一条insert的sql语句,然后调用SqlHelper中相应的方法就可以实现新增的目的。但是上面的需求,如果是由EF来完成,开发人员就不用在写sql语句,他只要实例化一个对象,然后给对象中的属性赋上相应的值,最后在执行一个add方法就可以实现新增的目的。这样开发人员就成功的避免了在写sql语句的麻烦。但是大家不要误解,并不是说我们不写sql语句,sql语句就不存在了,不用sql语句也能操作数据库了,不是这样的。其实是我们在调用add方法的时候,ORM这个框架自动的帮我们把这些操作映射或者说是转换成了sql语句,然后提交到数据库服务器,完成一系列的操作。这个例子就很好的和本文开头的主题相照应,ORM工具的目的就是用操作对象的方式去操作数据库。

你可能感兴趣的:(Entity,Framework,EF)