时间过得很快转眼间VS已经2010版了,在4月12日将会正式发布VS 2010

ADOEF 做为.Net 4.0 中被微软推荐的ORM框架,相比.Net 3.5 sp1 已经得到了进一步的增强,使用它我们可以针对我们的业务对象来编程和创建数据访问,而不是原来的数据库操作,极大的减少了代码的编写和程序的维护开支,使代码更简洁美观。

相比原始的开发模型ADOEF拥有诸多的优点:

1.ADOEF模型中可以详细的描述数据库中的表关系,并映射到模型当中来。

2.相比Linq to SQL ,ADOEF 可以支持更多的数据库,并提供了统一的模型。可以建立多个概念模型来映射同一个数据库

3.可以方便灵活的更新ADOEF与数据库的映射,应对数据库的变化

4.提供了更强大的语法检查和验证模型。

实体框架Entity Framework 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。在EF中的实体数据模型(EDM)它提供以下方式用于查询 EDM 并返回对象:

1. LINQ to Entities -- 提供语言集成查询 (LINQ) 支持用于查询在概念模型中定义的实体类型。

2. Entity SQL -- 与存储无关的 SQL 方言,直接使用概念模型中的实体并支持诸如继承和关系等 EDM 功能。

3. 查询生成器方法 --可以使用 LINQ 风格的查询方法构造 Entity SQL 查询。

模型的建立可以参考:ADO.NET Entity Framework 一个简单数据绑定例子

语法说明:

引用命名空间:

using System.Data.Objects;
using NorthwindModel; //EF模型
 首先我们查询所有的Customer,代码和Linq To SQL中的十分相似。
 using (NorthwindEntities ctx = new NorthwindEntities()) //建立edm{foreach (var customer in ctx.Customers) //获得实体集合{Console.WriteLine(customer.CustomerID);}}

Entity SQL Language 查询某个Customer,

Customer alfki = ctx.Customers.Where("it.CustomerID = 'ALFKI'").First();

"it.CustomerID = 'ALFKI'"     表示查询条件语句,该语句看着又像C#代码又像SQL,被成为Entity SQL Language。

Linq To Entities,需要引用System.Linq命名空间。

 
方法1 
Customer alfki = ctx.Customers.First<Customer>(it => it.CustomerID == "ALFKI");
 
方法2
 Customer alfki = (from c in ctx.Customerswhere c.CustomerID == "ALFKIA"select c).First();
 
在Entity Framework中进行一对多的查询很简单,如果建立了数据库关系,便可以直接使用。
但是值得注意的是Entity Framework默认是Lazy Load,即关联数据在需要的时候才加载。如果直接查询该Customer关联的orders,查询不到结果。
 
Customer alfki = ctx.Customers.First<Customer>(it => it.CustomerID == "ALFKI"); //获得客户 
foreach (var order in alfki.Orders) //遍历客户的订单{Console.WriteLine(order.OrderID);}

需要在使用orders之前调用 alfki.Orders.Load(), 再次运行便可以得到正确的结果。

参考文章:

http://msdn.microsoft.com/zh-cn/library/bb399572.aspx

http://www.cnblogs.com/blusehuang/archive/2007/10/10/920020.html

ADO.NET Entity Framework 基本概述相关推荐

  1. ADO.NET Entity Framework 学习(1) [ZT]

    前一段时间园子里有很多文章介绍分析了Linq To SQL,它可以说是一个简单实现的ORM,是微软针对数据和对象的阻抗不平衡的问题.C# 3.0推出一些新的特性,比如Extension Method, ...

  2. ADO.NET Entity Framework 简介

    一直对EF都是一知半解的,没有系统的了解过EF有什么样的功能,有什么具体的好处.在接下来的文章中会详细介绍EF.以下是参考MSDN上的文章,翻译并加以自己的理解得出的. ADO.NET Entity  ...

  3. 一处 ADO.NET Entity Framework 的逻辑BUG

    这几天开始接触ADO.NET Entity Framework,突然发现一处奇怪的BUG. 首先来看这样一个目录结构: 我将EDM模型存入了一个名为"A"的目录中,然后编辑模型,设 ...

  4. 自定义Unity对象生命周期管理集成ADO.NET Entity Framework

    在Unity中,从Unity 取得的实例为 Transient.如果你希望使用多线程方式,就需要在组成时使用lifecycle参数,这时候取出的组件就不再是同一个了.在Unity IOC中,它支持我们 ...

  5. ADO.NET Entity Framework Beta2(五)/快速入门(实体框架)

    This quickstart illustrates a series of tasks that support the topics in Getting Started with the En ...

  6. ADO.NET Entity Framework 入门示例向导(附Demo程序下载)

    ADO.NET Entity Framework 入门示例向导(附Demo程序下载) ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架, ...

  7. SQLite的ADO.NET Provider支持ADO.NET Entity Framework

    Ado.net 官方博客 http://blogs.msdn.com/adonet/archive/2008/09/06/sqlite-s-ado-net-provider-supports-the- ...

  8. ADO.NET Entity Framework

    微软推出ADO.NET Entity Framework,即下一代的ADO.NET.它是比Linq To SQL更加强大的ORM,让开发人员只需要着眼于领域对象模型的开发,而不需要考虑它们是如何与关系 ...

  9. ADO.NET Entity Framework -Code Fisrt 开篇(一)

    ADO.NET Entity Framework 是微软的一套实体映射框架.发布EF4.1(Entity Framework )时,又提出了代码先行的设计理念(the code comes first ...

最新文章

  1. 需求分析挑战之旅——疯狂的订餐系统
  2. Python基础之:Python中的内部对象
  3. ❤️六W字《计算机基础知识》(八)(建议收藏)❤️
  4. linux MISC 驱动模型分析
  5. 【UI设计师必备】可临摹精美的APP UI Kit模板
  6. ubuntu下配置php环境
  7. jquery 添加可操作,编辑不可操作
  8. 省市级联mysql数据_全国省市区县三级级联数据
  9. 课程设计 计算机公共基础,基于Moodle的大学计算机公共基础课程设计
  10. 物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平...
  11. [原]基因组变异检测概述
  12. 中国石油大学《微观经济学》在线考试
  13. Spring Boot整合MyBatis框架(完整的注解版)
  14. C语言:从键盘输入一个整数,分别输出它的个位数、十位数、百位数.....
  15. 【LOJ6515】贪玩蓝月
  16. 2020年机修钳工(技师)考试题库及机修钳工(技师)免费试题
  17. 程序设计方法与技术——C语言 程序设计概述
  18. Java:抽象成类找对象
  19. 2021最新某团_token参数分析、可获取商家列表、商家详情数据
  20. cefsharp 带cookie打开网址

热门文章

  1. LiveQing视频流媒体开放平台利用 webpack 打包压缩后端代码
  2. 数据结构--百度百科
  3. hibernate对象关系实现(二)一对一
  4. 有关android 应用的plugin框架调研
  5. SSIS教程SQlServer2008R2 (5) 添加错误流重定向
  6. SQL Server 数据库的整理优化的基本过程(二)
  7. STM32 电机教程 8 - 步进电机开环电流控制
  8. arduino开发ESP8266配置方法,入门必看,esp8266开发板库离线安装包package2.7.1
  9. 【DIY】arduino播放音乐方案——TMRpcm
  10. html设置无效字符,使用innerHTML属性向head中插入字符时报“无法设置 innerHTML 属性。 该操作的目标元件无效”的错误...