什么是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. Log4net - 项目使用的一个简单Demo

    参考页面: http://www.yuanjiaocheng.net/entity/entitytypes.html http://www.yuanjiaocheng.net/entity/entit ...

  2. HotApp小程序服务范围资质查询器

    微信小程序提交审核需要选择资质服务范围,如果服务范围不对,审核会不通过, 开发小程序之前,最好先查询所开发小程序的资质范围,否则无法通过微信审核.   小程序的资质范围查询地址,数据同步微信官方 ht ...

  3. iOS 自定义方法 - 不完整边框

    示例代码 ///////////////////////////OC.h////////////////////////// ////  UIView+FreeBorder.h//  BHBFreeB ...

  4. MongoDB学习笔记二—Shell操作

    数据类型 MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型. null null用于表示空值或者不存在的字段:{“x”:null} 布尔型 布尔类型有两个值true和fal ...

  5. SQLServer如何添加try catch

    在.net中我们经常用到try catch.不过在sqlserver中我们也可以使用try catch捕捉错误,在这里把语法记录下来和大家分享一下, --构建存储过程CREATE PROCEDURE ...

  6. 如何查看w3p.exe 和IIS 应用程序池的关系

    图形界面方式 命令行方式 如果找不到 appcmd Appcmd.exe exists at the location %systemroot%\system32\inetsrv\. You eith ...

  7. raspberrypi(树莓派)上安装mono和jexus,运行asp.net程序

    参考网址: http://www.linuxdot.net/ http://www.cnblogs.com/mayswind/p/3279380.html http://www.raspberrypi ...

  8. MyBatis5:MyBatis集成Spring事物管理(上篇)

    前言 有些日子没写博客了,主要原因一个是工作,另一个就是健身,因为我们不仅需要努力工作,也需要有健康的身体嘛. 那有看LZ博客的网友朋友们放心,LZ博客还是会继续保持更新,只是最近两三个月LZ写博客相 ...

  9. 微信小程序开发初探

    一.关于微信小程序 1.1 小程序诞生的背景 张小龙说道: (1)一切以用户价值为依归→用户是微信的核心,所以微信中没有很多与客户无关的功能,比如QQ中的乱七八糟一系列东西. (2)让创造发挥价值→所 ...

  10. CSS3变形记(上):千变万化的Div

    传统上,css就是用来对网页进行布局和渲染网页样式的.然而,css3的出现彻底打破了这一格局.了解过css3的人都知道,css3不但可以对网页进行布局和渲染样式,还可以绘制一些图形.对元素进行2D和3 ...