EF是啥?(EF基础系列)

EF产生的背景:

编写ADO.NET访问数据的代码,是沉闷而枯燥的,所以微软提供了一个对象关系映射框架(我们称之为EF),通过EF可以自动帮助我们的程序生成相关数据库的活动。

EF的定义:

EF是一个对象关系映射的框架,它保证程序员把相关的数据作为特别的领域对象,减少了程序员编写大量的访问数据库的代码。开发人员,使用LINQ来查询,检索,操作数据为强类型对象来处理。EF框架提供了更改跟踪,身份识别,懒加载,和查询转换,所以开发人员可以专注于他们的程序中的逻辑代码,而不是数据访问基础。

EF的三个应用场景:

1.根据已经存在的数据库,生成相关类;

2.根据相关领域类,生成数据库;

3.在可视化的设计器中,来创建类和数据库;

什么是O/RM?

ORM是一个工具,它可以自动的存储数据库(比如MS SQL Server)中领域对象中的数据,而不需要很多编程。

O/RM包含3个主要的部分:

1.领域类对象

    2.关系数据库对象

3.映射信息(领域对象,怎样映射到数据库对象【表,视图,存储过程】?)

ORM允许我们把数据库设计和领域类设计分开来,这样保证了程序的可维护性和可扩展性,ORM同样自动帮助我们生成了增删查改(CURD)操作,所以我们不必手动去写了。

Tips:要了解更多的ORM技术,可以访问 这个链接: Object-relational Mapping

ORM框架分类:

  1. DataObjects.Net

  2. NHibernate

  3. OpenAccess

  4. SubSonic

  5. 请注意:EF是微软的开源ORM框架,所谓开源就是你可以参与开发,有兴趣的可以去这个网站看看:codeplex.

好了,EF的介绍到此结束了。后面继续更新,觉得不错的,园友可以点赞,你的支持是我前进的动力!

时间: 2024-10-13 20:46:54

EF是啥?(EF基础系列)的相关文章

8天掌握EF的Code First开发系列之2 简单的CRUD操作

本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境是VS 2012,windows 7,MSSQL Server 2008 R2. 创建控制台项目 1. 新建控制台应用项目 2. 通过NuGet安装Entity Framework 6 根据.Net中的类来创建数据库 上面的步骤之后,我们就可以开始写代码了.在写代码之前,你要始终记得,每个类就是相应

C#大型电商项目优化(二)——嫌弃EF与抛弃EF

上一篇博文中讲述了使用EF开发电商项目的代码基础篇,提到EF后,一语激起千层浪.不少园友纷纷表示:EF不适合增长速度飞快的互联网项目,EF只适合企业级应用等等. 也有部分高手提到了分布式,确实,性能优化从数据库出发,初期就加索引,然后垂直拆分,水平拆分,读写分离,甚至是分布式事务,阳春白雪,格局很高.然而笔者希望通过渐进的过程来优化这个项目,我们缩小格局,从细节查看不同方案的优劣. 之前提过,使用EF最主要的原因是项目时间紧迫,EF搭建速度快,熟悉的同事也多,使用方便.这个决策确实帮助我们挺过了

EF架构~为EF DbContext生成的实体添加注释(T5模板应用)

相关文章系列 第八回 EF架构~将数据库注释添加导入到模型实体类中 第二十一回  EF架构~为EF DbContext生成的实体添加注释(T4模板应用) 第二十二回EF架构~为EF DbContext生成的实体添加注释(T5模板应用) 嗨,没法说,EF4的TT模版加上注释后,升级到EF5的TT模版后,注释就不通用了,所以,还得再研究一下,然后把操作方法再分享出来,没辙的微软! T4模版可能有些凌乱,这在T5模版里有了不错的改进,但我希望解决的问题在T5里并没有得到解决,那就是TT类文件自动得到E

C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)

反射以及Attribute在ORM中的应用 一. 反射什么是反射?简单点吧,反射就是在运行时动态获取对象信息的方法,比如运行时知道对象有哪些属性,方法,委托等等等等.反射有什么用呢?反射不但让你在运行是获取对象的信息,还提供运行时动态调用对象方法以及动态设置.获取属性等的能力.反射在ORM中有什么用呢?我这里所讨论的ORM实现是通过自定义Attribute的方式进行映射规则的描述的.但是我们并不知道具体哪个对象需要对应哪个表,并且这些对象是独立于我们的ORM框架的,所以我们只能通过自定义Attr

Spring基础系列11 -- 自动创建Proxy

Spring基础系列11 -- 自动创建Proxy 转载:http://www.cnblogs.com/leiOOlei/p/3557964.html 在<Spring3系列9- Spring AOP——Advice>和<Spring3系列10- Spring AOP——Pointcut,Advisor拦截指定方法>中的例子中,在配置文件中,你必须手动为每一个需要AOP的bean创建Proxy bean(ProxyFactoryBean). 这不是一个好的体验,例如,你想让DAO层

Scrum入门基础系列之Scrum会议

Scrum入门基础系列之Scrum会议 3条回复 Scrum会议包含Sprint计划会.每日例会.Sprint评审会.Sprint回顾会.下面分别介绍这几个会议,按照一个简单模板进行介绍: WHY.WHAT.WHEN.WHO.HOW,即为什么要有这个会议,这个会议的输入和输出是什么,什么时间开这个会,谁来参加,如何开好这个会议. Sprint计划会 WHY Sprint计划会是为当前Sprint做计划的会议. WHAT Sprint计划会的输入为产品Backlog,最新的产品增量,团队的能力和开

Scrum入门基础系列之Scrum工件

Scrum入门基础系列之Scrum工件 3条回复 Scrum工件主要包含一下3种: 产品Backlog Sprint Backlog 产品增量 产品Backlog 在Scrum中,主要由产品负责人[参见Scrum入门基础系列之Scrum角色]整理和维护产品Backlog.产品Backlog是Scrum中维护需求的主要工件,也是做好Scrum的第一步.一个好的产品Backlog,是要符合DEEP原则的,即,产品Backlog是详略得当的(Detailed Appropriate),涌现的(Emer

C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)

既然是一个窗体设计器,那就应该能够设置控件的属性,设置属性最好的当然是PropertyGrid了,我们仅仅需要使用一个PropertyGrid.SelectedObject = Control就可以搞定,让PropertyGrid显示Control的所有属性.可是这里显示的属性名是英文的.对于我们开发人员来说这无可厚非,我们也乐于接受.并且让PropertyGrid显示中文属性名,这对于我们开发人员的使用来说显得多此一举.可是,对于我这种类型的一个应用工具,英文属性名对于很多客户来说可能就很难懂

Spring基础系列12 -- Spring AOP AspectJ

Spring基础系列12 -- Spring AOP AspectJ 转载:http://www.cnblogs.com/leiOOlei/p/3613352.html 本文讲述使用AspectJ框架实现Spring AOP. 再重复一下Spring AOP中的三个概念, Advice:向程序内部注入的代码. Pointcut:注入Advice的位置,切入点,一般为某方法. Advisor:Advice和Pointcut的结合单元,以便将Advice和Pointcut分开实现灵活配置. Aspe

Scrum入门基础系列之Scrum起源

Scrum入门基础系列之Scrum起源 5条回复 说起Scrum就不得不提Scrum之父 – Jeff Sutherland和Ken Schwaber,Jeff在1993年结合他的工作实践创建了Scrum框架,1995年Ken在OOPSLA会议上第一次发表Scrum的论文.此后Scrum之父的两位分别撰写过多篇文章,并联合发布了<Scrum Guide>(Scrum指南).有关具体的Scrum起源可以参考我之前的一篇博文 – Scrum起源. 说到Scrum的起源,让我们再来看看Scrum的3