博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF,更好地管理
阅读量:6258 次
发布时间:2019-06-22

本文共 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

   【缘由】

    在了解EFORM技术的原理之前,不妨先思考一个“为什么”的问题。也就是说,为什么会有EFORM这样的技术出现,它们能带来什么好处吗?又或者说,之前采用的应用程序与数据库交互的方式有着什么不足吗?下面我们一一来解答。

         EF技术,它解决了对象持久化的问题,将程序员从编写麻烦的SQL语句中解放出来。

    优点:

支持多种数据库(SQL ServerOracle等);

提供Visual Studio集成工具,支持可视化操作;

能够与ASP.NETWCF进行很好的集成。 

         ORM技术,它是框架的一个总称。它使程序员既能够利用面向对象语言的简单性,又能够利用关系数据库的技术优势来实现应用程序的增删改查操作。

    优点:

面向对象,不用SQL直接编码,就像操作对象一样操作数据库;

提高开发效率,ORM可以自动对实体对象与数据库中Table进行字段与属性的映射,不需要单独的数据访问层。

方便转移,当数据库发生变化时,不需要对模型进行改动,只需要修改映射关系。

   然而,ORM技术并不是完美无缺的。

    缺点:

会牺牲程序的执行效率;

复杂的ORM低于SQL语句。

所以,这也就决定了ORM技术有着一定的使用场合:

 1、ORM使我们摆脱了SQL,但并不代表我们不再使用SQL,事实上,复杂的查询和报表仍推荐使用SQL,良好的系统应该可以兼容以前的方式;

 2ORM更适合复杂的系统(这里使用复杂,而不是大型),因为这样的系统要求建造速度快,系统稳定,他们的业务规则异常的复杂,但他们对系统的性能要求并不高

 3、开发时间紧迫时

 4、有数据库迁移需求时

   【总结】

    在这些理论学习之前,对EF并不是特别了解,只是知道以后一定会用到。至于为什么,并不是很清楚。通过这一次理论知识的学习,了解到EF是与数据库一一映射的关系,这就大大方便了对数据库的管理。通过EF,我们不需要从数据库中对数据进行变更,不再需要使用大量复杂的SQL语句。

    现在欠缺的是自己的实践。

你可能感兴趣的文章
【LoadRunner】安装LoadRunner
查看>>
Linux内存管理 (15)页面迁移
查看>>
在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?
查看>>
Cocos2d-x 3.0final 终结者系列教程13-贪食蛇游戏案例(全)
查看>>
Nginx的try_files指令和命名location使用实例
查看>>
IO多路复用之select
查看>>
pd_ds中的hash
查看>>
买书不读是一种什么病?
查看>>
微信接口开发报错invalid credential, access_token is invalid or not latest hint
查看>>
nohup 部署springboot 使用命令
查看>>
MQ产品比较-ActiveMQ-RocketMQ
查看>>
暂时没有想好呢。
查看>>
windows服务 MVC之@Html.Raw()用法 文件流的读写 简单工厂和工厂模式对比
查看>>
PHP解析URL并得到URL中的参数
查看>>
【vue.js】绑定click事件
查看>>
字体属性
查看>>
linux的iptables和firewall的区别
查看>>
Install RabbitMQ server in CentOS 7
查看>>
Eureka的优势
查看>>
Android项目实战(一): SpannableString与SpannableStringBuilder
查看>>