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. SpringMVC -- 注解

    @Entity -- 实体类@Table(name = "hat_province", catalog = "news") -- 对应的表name -- 表名c ...

  2. mac osx Forbidden You don't have permission to access / on this server解决方法

    (1)首先查看*.conf 是否有读写权限,如果没有要将文件赋予读写权限,比如 localhost.conf (2)再查看/Users/username/Sites/localhost/文件夹是否有i ...

  3. 阅读jquery源码与js依赖加载的模块化!

    阅读源码肯定是先下载有注释的源码 我也是醉了,10309 行代码,在陆续续的一个月之内,看完了,虽有收获但收获不大, 直到又一次看jquery的github,怎么会有cmd????没听过使用jquer ...

  4. iOS 10 新特性 大汇总 及iOS 10 的一些小问题和 xcode 8 的新版本小问题

    iOS 10正式版是很值得升级的,特别是那些不打算购买iPhone 7的老用户,毕竟新系统在体验.流畅性上都做了一些升级. 1.开放电话接口 支持垃圾电话提醒 对于使用iPhone的国人来说,这个功能 ...

  5. BZOJ4293: [PA2015]Siano

    Description 农夫Byteasar买了一片n亩的土地,他要在这上面种草. 他在每一亩土地上都种植了一种独一无二的草,其中,第i亩土地的草每天会长高a[i]厘米. Byteasar一共会进行m ...

  6. 移动web前端下拉刷新效果

    直接复制粘贴 放在页面中即可 <script> window.onload = function(){ window.addEventListener('touchstart', touc ...

  7. Devexpress

    1.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值 sValue=Table.Rows[gri ...

  8. 【OAuth2.0】Spring Security OAuth2.0篇之初识

    不吐不快 因为项目需求开始接触OAuth2.0授权协议.断断续续接触了有两周左右的时间.不得不吐槽的,依然是自己的学习习惯问题,总是着急想了解一切,习惯性地钻牛角尖去理解小的细节,而不是从宏观上去掌握 ...

  9. poj3250

    //(栈)poj3250将第i头牛能看到多少牛传化为第i头牛能被多少牛看见 /* #include <stdio.h> #include <stack> using names ...

  10. C++构造函数/析构函数 设置成private的原因

    C++构造函数/析构函数 设置成private的原因 标签(空格分隔): c/c++ 将构造函数,析构函数声明为私有和保护的,那么对象如何创建? 已经不能从外部调用构造函数了,但是对象必须被构造,应该 ...