本文共 1394 字,大约阅读时间需要 4 分钟。
EF,到目前为止,只是在别人建立好的基础上见过用过它,即:每次更新了数据库,都需要更新程序中的实体模型。而事实上,对于它,自己并不是特别了解。所以,通过这一次的学习,对它的认识算是前进了不少。
【温故】
又是一个新的英文单词组合,EF,在正式介绍它之前,还是先对之前的专业词汇进行一下简单地回顾。
.NET 最核心的基础平台(可以看做运行环境和巨多类库),仅次于操作系统。
ASP.NET .NET平台内开发的Web技术。
ADO.NET .NET平台内访问数据库的技术。
MVC 网页开发的一种框架,与具体平台或者语言关系不大
【知新】
EF,全称Entity Framework(实体框架)。它是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。
自然而然,又有了一个疑问,ORM又是什么?
ORM,全称ObjectRelational Mapping(对象关系映射)。它是把数据库映射为实体类的一个技术。
好像这些文字上的东西,看一个觉得都一样,傻傻分不清楚。那么,还是用一张图来看看EF的体系结构啦。
【结构】
·
一张图,也让我们很清楚的看到了更多东西间的关系。用最简单的语言总结便是:
EF是在ADO.NET平台下发展而来的解决与数据库的交互技术,而对于EF框架的实现,用到的技术便是ORM。
【缘由】
在了解EF、ORM技术的原理之前,不妨先思考一个“为什么”的问题。也就是说,为什么会有EF、ORM这样的技术出现,它们能带来什么好处吗?又或者说,之前采用的应用程序与数据库交互的方式有着什么不足吗?下面我们一一来解答。
EF技术,它解决了对象持久化的问题,将程序员从编写麻烦的SQL语句中解放出来。
优点:
支持多种数据库(SQL Server、Oracle等);
提供Visual Studio集成工具,支持可视化操作;
能够与ASP.NET、WCF进行很好的集成。
ORM技术,它是框架的一个总称。它使程序员既能够利用面向对象语言的简单性,又能够利用关系数据库的技术优势来实现应用程序的增删改查操作。
优点:
面向对象,不用SQL直接编码,就像操作对象一样操作数据库;
提高开发效率,ORM可以自动对实体对象与数据库中Table进行字段与属性的映射,不需要单独的数据访问层。
方便转移,当数据库发生变化时,不需要对模型进行改动,只需要修改映射关系。
然而,ORM技术并不是完美无缺的。
缺点:
会牺牲程序的执行效率;
复杂的ORM低于SQL语句。
所以,这也就决定了ORM技术有着一定的使用场合:
1、ORM使我们摆脱了SQL,但并不代表我们不再使用SQL,事实上,复杂的查询和报表仍推荐使用SQL,良好的系统应该可以兼容以前的方式;
2、ORM更适合复杂的系统(这里使用复杂,而不是大型),因为这样的系统要求建造速度快,系统稳定,他们的业务规则异常的复杂,但他们对系统的性能要求并不高
3、开发时间紧迫时
4、有数据库迁移需求时
【总结】
在这些理论学习之前,对EF并不是特别了解,只是知道以后一定会用到。至于为什么,并不是很清楚。通过这一次理论知识的学习,了解到EF是与数据库一一映射的关系,这就大大方便了对数据库的管理。通过EF,我们不再需要从数据库中对数据进行变更,不再需要使用大量复杂的SQL语句。
现在欠缺的是自己的实践。