LINQ to ADO.NET 包括两种独立的技术: LINQ to DataSet 和 LINQ to SQL。 使用 LINQ to DataSet 可以对DataSet 执行丰富而优化的查询,而使用 LINQ to SQL 可以直接查询 SQL Server 数据库架构。
  由 LINQ to DataSet 和 LINQ to SQL 实现的 LINQ提供程序可以将源数据转换为基于 IEnumerable 的对象集合。

1. LINQ to DataSet

  DataSet 是赖以生成 ADO.NET 的断开连接式编程模型的关键元素,LINQ to DataSet 使开发人员能够通过使用许多其他数据源可用的同样的查询表述机制在 DataSet 中内置更丰富的查询功能。

  使用 LINQ to DataSet 可以更快更容易地查询在 DataSet 对象中缓存的数据。通过使用编程语言本身而不是通过使用单独的查询语言来编写查询,LINQ to DataSet 可以简化查询。

  LINQ to DataSet 也可用于查询从一个或多个数据源合并的数据。

  LINQ to DataSet 功能主要通过 DataRowExtensions 和 DataTableExtensions 类中的扩展方法公开。LINQ to DataSet基于并使用现有的 ADO.NET 2.0 体系结构生成,在应用程序代码中不能替换 ADO.NET 2.0。

  只要在填充 DataSet 后,就可以开始使用 LINQ to DataSet 来查询 DataSet 对象。 向 DataSet 中加载数据有多种方法,如使用 DataAdapter 类或 LINQ to SQL。 将数据加载到 DataSet 对象后,可以开始查询数据。
  使用 LINQ to DataSet 来表述查询类似于对其他启用 LINQ 的数据源使用Language-Integrated Query (LINQ)。
  LINQ 查询可以对 DataSet 中的单个表执行,也可以通过使用 Join 和 GroupJoin 标准查询运算符对多个表执行。
  支持对类型化和非类型化 DataSet 对象执行 LINQ 查询。 如果在应用程序设计时已知 DataSet 的架构,则建议使用类型化 DataSet。 在类型化 DataSet ,表和行对每个列都具有类型化成员,从而使查询更简单并且更具可读性。
  除了 System.Core.dll 中实现的标准查询运算符外,LINQ to DataSet 还添加了多种 DataSet 特定扩展,从而可以更容易地查询一组 DataRow 对象。 这些 DataSet 定扩展包括用于比较行序列的运算符以及用于访问DataRow 的列值的方法。

2. LINQ to SQL

  LINQ to SQL 是适合不需要映射到概念模型的开发, 通过使用 LINQ to SQL,可以直接在现有数据库架构上直接使用 LINQ 编程模型。LINQ to SQL 能够生成表示数据的 .NETFramework 类。 这些生成的类直接映射到数据库表、视图、存储过程和用户定义的函数,而不映射到概念数据模型。使用 LINQ to SQL 时,除了其他数据源(如 XML)外,还可以使用与内存集合和 DataSet 相同的LINQ 编程模式直接编写针对存储架构的代码。

LINQ系列:LINQ to ADO.NET概述的更多相关文章

  1. C# ~ 从 XML 到 Linq 到 Linq to XML

    .XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...

  2. LINQ系列目录

    1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 2.1 LINQ to Object投影操作符(Select/SelectMany/Let) 2.2 LINQ ...

  3. LinQ系列文章

    温故而知新,想着系统再学习一次LinQ知识点,发现园子里有个非常棒的系列文章,所以Mark下来,方便以后查阅! 系列博客导航: LINQ之路系列博客导航 LINQ之路 1:LINQ介绍 LINQ之路 ...

  4. C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换

    LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System. ...

  5. Linq系列

    LINQ 图解 Linq中的Select——投影 Linq学习资源 Expert C# 5.0中的Linq部分

  6. LINQ 系列

    C#图解教程 第十九章 LINQ   LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...

  7. Linq之Linq to Sql

    目录 写在前面 系列文章 Linq to sql 总结 写在前面 上篇文章介绍了linq to xml的相关内容,linq to xml提供一种更便捷的创建xml树,及查询的途径.这篇文章将继续介绍l ...

  8. Linq之Linq to XML

    目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将wor ...

  9. ADO.NET 快速入门(一):ADO.NET 概述

    ADO.NET 概述 ADO.NET是改进的ADO数据访问模型用于开发可扩展应用程序.他是专门为可伸缩性.无状态和XML核心的web而设计的.   ADO.NET使用一些ADO对象,如Connecti ...

  10. C#5.0之后推荐使用TPL(Task Parallel Libray 任务并行库) 和PLINQ(Parallel LINQ, 并行Linq). 其次是TAP(Task-based Asynchronous Pattern, 基于任务的异步模式)

    学习书籍: <C#本质论> 1--C#5.0之后推荐使用TPL(Task Parallel Libray 任务并行库) 和PLINQ(Parallel LINQ, 并行Linq). 其次是 ...

随机推荐

  1. 分布式大数据高并发的web开发框架

    一.引言 通常我们认为静态网页html的网站速度是最快的,但是自从有了动态网页之后,很多交互数据都从数据库查询而来,数据也是经常变化的,除了一些新闻资讯类的网站,使用html静态化来提高访问速度是不太 ...

  2. Access restriction: The type 'FileURLConnection' is not API

    遇到这种报错,解决方案如下: 报错原因是访问限制报错 工具栏中Project>preferences>java-Compiler>Errors/Warnings>把右侧的[De ...

  3. POJ 1979 题解

    Red and Black Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 31722   Accepted: 17298 D ...

  4. 斯考特·杨(Scott Young)快速学习方法

    上午在网上看到了斯考特·杨(Scott Young)的快速学习方法,感觉很受鼓舞. 现在已经读研究生了,可是发现自己自从上大学以来到现在,发现自己的学习方法有很大的问题. 我是个特别喜欢读书的人,在大 ...

  5. web.xml配置错误导致applicationContext.xml配置重复加载

    web.xml相关配置 <context-param><param-name>log4jRefreshInterval</param-name><param- ...

  6. Node.js抓取网页

    前几天四六级成绩出来(然而我没考),用Node.js做了一个模拟表单提交并抓取数据的Web 总结一下用到的知识,简单的网页抓取大概就是这个流程了 发送Get或Post请求 表单提交,首先弄到原网页提交 ...

  7. angularjs 解决ng-repeat数组内重复对象报错的问题

    ng-repeat 循环数组内元素时,如果数组内元素重复,angular会抛出异常: Error: [ngRepeat:dupes] http://errors.angularjs.org/1.4.3 ...

  8. 前端开发神器sublime Text

    实用的sublime插件集合 – sublime必备插件 前言 入前端领域开始,就学着使用sublime,一直用起来很顺手,速度是我最欣赏的,快的没有编辑器可以匹敌.还是废话不多扯,入正题.好多有多少 ...

  9. angularJs 指令的理解

    指令: 可以把指令理解成为特定的DOM 上运行的函数,指令扩展了这个元素的功能: 例如:ng-click--在DOM元素上绑定了一个click事件的监听,并在监听到事件时运行angular表达式 自定 ...

  10. 代码片段:处理HTTP请求的接口

    以下程序用来获取用户传递过来的信息. 1.头文件 /* * 这个是处理HTTP请求的接口头文件 */ #define KEY_VALUE_MAX 1024 /* 键值的最大长度 */ typedef ...