【菜鸟学EF】——初识EF

来源:互联网 发布:淘宝图片上传尺寸 编辑:程序博客网 时间:2024/05/21 08:36

前提

  首先感谢组织给的机会,有幸参加到图书馆管理系统中,也是在这个过程学习到很多内容,其中这个系统采用MVC+EF+WCF,关于涉及到这三种都刚刚开始接触,希望将这些内容和大家分享一下。

ORM

  对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。

  这些官方的话可能不太容易理解,用一张图来表示一下吧。
这里写图片描述
  ORM的核心思想就是把实体的变化映射成表的变化,这样我们在开发的时候不再关心数据库中的表的东西,而是直接面向实体开发。这样我们不会用到原生的SQL语句,所以不知怎么懂数据库语言也能轻易上手,方便快捷。ORM模型的简单性简化了数据库查询过程。使用ORM查询工具,用户可以访问期望数据,而不必理解数据库的底层结构。

EF

  EF概念:实体框架(Entity Framework)是ADO.NET中的一组支持面向数据的软件应用程序的技术,是微软的一个ORM框架。

理解EF数据模型

  EF本质上是一个ORM框架,它需要把对象映射到底层数据库中的表,为此,它使用了三个模型来描述这种映射关系。
(1)概念模型(Conceptual Model):主要体现为一组可以被应用程序直接使用的类。这些类也是我们在程序中直接使用的类,通常称之为“实体(Entity)”
(2)存储模型(Storage Model):主要体现为一组与底层数据存储介质(比如数据库系统)直接对应的类。
(3)概念-存储模型映射(Conceptual- Storage Mapping),解决“概念模型”中的类如何与“存储模型”中的类相互对应的问题。
(2)和(3)中的类型由EF内部使用,在实际开发中通常触及不到。

EF的核心流程

这里写图片描述
  从图中就能理解我们为什么不使用原生SQL语言了,不需要之间面向数据库执行增、删、改、查操作,而是需要一个上下文(Context)直接操作实体。

EF的好处

官方说法:
1、应用程序不再对特定的数据引擎后存储架构具有硬编码的依赖性。
2、可以在不更改应用程序代码的情况下更改概念模型和特定于存储的架构之间的映射。
3、开发人员可以利用映射到各种存储架构(可能在不同的数据库管理系统中实现)一致的应用程序对象模型。
4、多个概念模型可以映射到同一个存储架构
5、语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。

  当然上面的优点比较官方,而且这是百度的结果,个人认为使用EF的好处就是:

1.面向对象 不用SQL直接编码,就可以向操作对象一样操作数据库
2.提高开发效率 ORM可以自动对实体对象与数据库中Table进行字段与属性的映射,不需要单独的数据访问层。
3.方便转移 当数据库发生改变时,不需要对模型进行改动,只需要修改映射关系就可以了。

缺点:

牺牲程序的执行效率,复杂的ORM比SQL原生语句要慢很多。

【总结】

   本文的一些内容都是偏重概念性的东西,想要真正的学习EF还是需要自己动手去做。具体的Demo将在下篇博文给出,便于我们的进一步学习。EF虽然很好用,但还是在一定程度上损失了我们效率,还是根据自己的需求选择使用。

0 0
原创粉丝点击