什么是Entity Framework

编写和管理ADO.NET是一个繁琐而又无聊的工作。微软为你的应用提供了一个名为“Entity Framework”的ORM框架来自动化管理你的数据库。

微软对Entity Framework给出了以下定义:

EF是一个对象关系映射(ORM)框架,它能使开发人员用关系型数据定义特定领域的对象,并且开发人员不再需要编写大量的数据库访问代码。使用Entity Framework,开发人员用Linq帮助他们进行查询,检索出的数据自动生成强类型对象。EF提供如变动追踪,身份验证,延迟加载,查询编译使得开发人员更加专注于他们的业务逻辑上而不是数据访问模块的开发上。EF是基于ADO.NET上进行增强的,它为开发人员提供了自动的数据持久化机制。

EF在以下三种场景中都可以使用。第一,如果你已经有存在的数据库,或者你想先设计好你的数据库再进行其他的开发。第二,你只想专注设计特定领域的类,然后才使用这些类来生成数据库。第三,你想通过visual studio提供的设计器来设计你的数据库模型,然后再从该模型中生成数据库和对应的类。

以下图例说明上面的三种情况。

1.EF帮助你从已有的数据库中建立类,这样你就可以通过这个类生成的实例和ADO.NET打交道。

2.你可以专注于你的业务来设计类型,EF根据这些类型帮助你创建数据库。

3.EF提供模型设计器,当你设计完成后,EF既帮你生成数据库也帮你生成类型代码。

什么是ORM

ORM是一种帮你将对象转化成关系型数据库中数据的工具,例如存入MS SQL Server中,并且是全自动的,无需额外的代码。O/RM包括三个主要的方面:业务对象,关系数据库对象和如何将业务对象转化为数据库对象(如表,视图,存储过程)的映射信息对象。ORM让我们可以独立的设计数据库和业务对象类。这让我们的应用程序更易于维护和可扩展。因此程序员们可以不再手动编写CRUD(Create, Read, Update, Delete)操作了。

ORM帮你生成类并与数据库进行互操作,如下所示

除了微软提供的开源ORM框架EF之外,还有许多.net 的ORM框架,如 DataObjects.Net, NHibernate, OpenAccess, SubSonic 等。

Entity Framework 教程——什么是Entity Framework的更多相关文章

  1. Entity Framework教程翻译 ---- 系列教程

    Entity Framework教程(第二版) (翻译)Entity Framework技巧系列之十四 - Tip 56 (翻译)Entity Framework技巧系列之十三 - Tip 51 - ...

  2. Entity Framework教程及文章传送门

    Entity Framework视频教程http://www.iqiyi.com/playlist296844502.html Model-Code First做法講解與教學 (ASP.net MVC ...

  3. Entity Framework 教程(转)

    预备知识    2 LINQ技术    2 LINQ技术的基础 - C#3.0    2 自动属性    2 隐式类型    2 对象初始化器与集合初始化器    3 匿名类    3 扩展方法    ...

  4. [hystar整理]Entity Framework 教程

    参考页面: http://www.yuanjiaocheng.net/entity/entity-relations.html http://www.yuanjiaocheng.net/entity/ ...

  5. Entity Framework 教程——DBContext

    DBContext: 在之前的章节<创建实体数据模型>中,EDM为我们创建了SchoolDBEntities 类,它派生子System.Data.Entity.DbContext这个类,这 ...

  6. Robot FrameWork 教程链接

    1.  Robot Framework 教程: http://cgmblog.sinaapp.com/html/category/robot-framework 2.  Robot Framework ...

  7. Robot Framework 教程 (3) - Resource及关键字 的使用

    From:http://www.cnblogs.com/buaawp/p/4754399.html Robot Framework 教程 (3) - Resource及关键字 的使用 在进行软件自动化 ...

  8. Django Rest Framework 教程及API向导

    Django Rest Framework 教程及API向导. 一.请求(Request)REST_FRAMEWORK 中的 Request 扩展了标准的HttpRequest,为 REST_FRAM ...

  9. Django REST Framework 教程开篇

    作者:HelloGitHub-追梦人物 欢迎来到 HelloDjango 全栈系列教程第二步--Django REST Framework 教程! 首先恭喜你完成了 HelloDjango 全栈系列教 ...

随机推荐

  1. GOF23设计模式之单例模式

    ·核心作用: -保证一个类只有一个实例,并且提供一个访问该实例的全局访问点. ·常见应用场景: -Windows的Task Manager(任务管理器)就是很典型的单例模式 -Windows的Recy ...

  2. 推荐10款超级有趣的HTML5小游戏

    HTML5的发展速度比任何人的都想像都要更快.更加强大有效的和专业的解决方案已经被开发......甚至在游戏世界中!这里跟大家分享有10款超级趣味的HTML5游戏,希望大家能够喜欢! Kern Typ ...

  3. SharePoint 2013: A feature with ID has already been installed in this farm

    使用Visual Studio 2013创建一个可视web 部件,当右击项目选择"部署"时报错: "Error occurred in deployment step ' ...

  4. Android Studio切换为eclipse的快捷键之后还是有区别的部分快捷键

    Android Studio Eclipse 把代码提示换成了Class Name Completion, 快捷键是Ctrl+Alt+Space(空格键). 代码提示快捷键Alt+/,         ...

  5. hadoop 2.4 遇到的问题

    不管出什么问题,首先查看日志. 在启动过hadoop的前提下,打开浏览器,输入http://localhost:50070 点击Utilities下的logs,选择hadoop-root-datano ...

  6. Immutable(不可变)集合

    不可变集合,顾名思义就是说集合是不可被修改的.集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变. 为什么要用immutable对象?immutable对象有以下的优点: 对不可靠的客户代 ...

  7. 是时候搁置Grunt,耍一耍gulp了

    也算是用了半年Grunt,几个月前也写过一篇它的入门文章(点此查看),不得不说它是前端项目的一个得力助手.不过技术工具跟语言一样日新月异,总会有更好用的新的东西把旧的拍死在沙滩上(当然Grunt肯定没 ...

  8. ABP源码分析四十二:ZERO的身份认证

    ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展.同时重写了ABP核心模块中的permission功能,以实现 ...

  9. ABP框架 - 值对象

    文档目录 本节内容: 简介 值对象基类 最佳实践 简介 “一个表示领域的一个描述性方面的没有概念上的身份对象,称为值对象.“(Eric Evans). 与一个有身份(Id)实体相反,一个值对象没有身份 ...

  10. xamarin IOS 报错处理: an error occurred on client Build420719 while

    xamarin IOS 开发时如果报错如下: an error occurred on client Build420719 while...... 出现如下问题时,可能是1.丢失文件2.没有包括在项 ...