LINQ系列:LINQ to ADO.NET概述

  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 编程模式直接编写针对存储架构的代码。

时间: 2024-08-09 03:27:55

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

Linq系列

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

Linq之Linq to XML

目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将word文档另存为xml文件,这也提供了一种通过操作xml,操作word的一种方式)以及数据库中,都可以看到 XML.而linq to xml提供了一种操作xml更便捷的方式. 系列文章 Linq之Lambda表达式初步认识 Linq之Lambda进阶 Linq之隐式类型.自动属性.初始化器.匿名类 Li

Linq之Linq to Sql

目录 写在前面 系列文章 Linq to sql 总结 写在前面 上篇文章介绍了linq to xml的相关内容,linq to xml提供一种更便捷的创建xml树,及查询的途径.这篇文章将继续介绍linq to sql的内容.个人觉得linq to sql在实际开发中在中小型项目中用的比较多,在中小型项目用ef或者nhibernate这些orm确实有点重量级.Linq to Sql提供了丰富的功能,完全可以满足日常数据访问的需求.使用方法也非常简单.灵活. 系列文章 Linq之Lambda表达

Linq技术四:动态Linq技术 -- Linq.Expressions

前面介绍了Linq的三个方面应用:Linq to SQL, Linq to XML和Linq to Object,这篇介绍一下动态Linq的实现方式及应用场景. 命名空间: System.Linq; System.Linq.Expressions; 应用Linq的时候,我们都知道只需要Lambda表达式就行,但有些场景仅仅只使用Data Model的字段名操作是不够的或者不方便的. 场景1:假设我们需要拼接Where条件进行查询,一种方式可以拼接IQueryable的表达式.但我想像写SQL语句

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). 其次是TAP(Task-based Asynchronous Pattern, 基于任务的异步模式). --用AggregateException处理Task上的未处理异常. --取消任务. CancellationToken --async修饰方法, 返回Task. task.wait(100)可以阻塞现场. a

[考研系列之数据结构]线性表概述

1.脑图 2.表示方法 按照数据结构概述所说,线性表有两种表示方法分别是顺序表示和链式表示,链表就是链式表示的典型. 我们知道链式表示是分配了n块内存空间,可以认为彼此不连续,所以不能用偏移量去定位每个元素. 下面就先说最简单的单向链表: 如果每个数据元素能有一个指针指向下一个元素的话,那么只需要知道第一个数据元素就能一个一个的遍历整个链表了,这就是单向链表. 对于每个链表元素我们称之为节点,每个节点都有两个域:数据域&指针域 数据域就是数据元素所在的区域,而指针域则是存储指向另一个节点的指针的

LINQ系列:C#中与LINQ相关特性

1. 匿名类型 通过关键字var定义匿名类型,编译器将根据运算符右侧表达式的值来发出一个强类型. 使用匿名类型时要遵守的一些基本规则: ◊ 匿名类型必须有一个初始化值,而且这个值不能是空值(null),因为类型是根据初始化器推断出来的: ◊ 匿名类型可以用于简单类型,也可以用于复杂类型.用于定义简单类型时,其价值不大.复合匿名类型需要有成员声明: ◊ 匿名类型不能用于类的字段: ◊ 匿名类型可以在for循环中用作初始化器: ◊ 可以使用new关键字:数组的初始化器必须使用new关键字: ◊ 匿名

一步一步学LINQ系列1---什么是LINQ?

一.本系列目标 1.理解LINQ: 2.能写得复杂的LINQ语句(比如:动态查询): 3.理解表达式树及相关概念: 4.熟练运用LINQ写出优美的代码(希望一起努力,最终达到): 二.LINQ为何物?   LINQ之争的销烟已经退去,如今,LINQ已经成为C#开发人必备技术之一.很多人用它写出了优美的代码,它已经成为处理数据的一种全新开发方式,这也许是你选择.NET作为开发平台的福利之一.越来越多的开源库.框架都大量地使用LINQ.不管是出于提高自身技能还是读懂别人的代码,它都得是被你我拿下的一

LINQ系列目录

1. LINQ准备 1.1 C#中与LINQ相关特性 2. LINQ to Object 3. LINQ to ADO.NET 4. LINQ to SQL 5. LINQ to XML