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

转载于:https://www.cnblogs.com/libingql/p/4045720.html

LINQ系列:LINQ to ADO.NET概述相关推荐

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

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

  2. .NET深入实战系列—Linq to Sql进阶

    .NET深入实战系列-Linq to Sql进阶 最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基 ...

  3. openssl之EVP系列之2---对称加密算法概述

    openssl之EVP系列之2---对称加密算法概述     ---依据openssl doc/crypto/EVP_EncryptInit.pod和doc/ssleay.txt cipher.doc ...

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

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

  5. 【LINQ】LINQ 简介

    LINQ基本概念 LINQ(语言集成查询) 是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已经成为了编程语言的组成部分,在编程时可以进行语法检查, ...

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

    前面介绍了Linq的三个方面应用:Linq to SQL, Linq to XML和Linq to Object,这篇介绍一下动态Linq的实现方式及应用场景. 命名空间: System.Linq; ...

  7. SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

    SVG实例详解系列(一) (svg概述.位图和矢量图区别(图解).SVG应用实例) 目录 一.什么是SVG? (1).位图和矢量图概念(图解) (2).SVG的小例子 (a)笑脸符 (b).小鸟 (c ...

  8. 【光剑极简教程系列】“计算机科学与技术”概述Computer Science and Technology

    [光剑极简教程系列]"计算机科学与技术"概述 Computer Science and Technology 计算机科学是什么? 计算机科学,研究计算机及其周围各种现象和规律的科学 ...

  9. LINQ系列:LINQ to SQL Exists/In/Any/All/Contains

    1. Any 返回没有Product的Category var expr = from c in context.Categorieswhere !c.Products.Any()select c; ...

最新文章

  1. 计算机课玩手机检讨500,玩手机检讨书500字
  2. HTML5事件——contextmenu 隐藏鼠标右键菜单
  3. 打印hello world java_java – 如何打印“hello world”?
  4. 09-mysql-分组函数-最大最小总和平均值
  5. python抽取指定url页面的title_Python新手写爬虫全过程记录分析
  6. axure树形表格_Axure教程:可增删改的树型结构
  7. CCF NOI1013 识别三角形
  8. python系列教程_python基础学习系列教程2-进阶之路中绕不开的知识点。
  9. Open×××多处理之-为什么不
  10. 3.4 主存储器与CPU的连接———存储器容量的扩充
  11. 计算机网络(谢希仁版)知识点汇总
  12. vb 运行错误429 mysql_Win7运行VB工具提示“运行时错误429 ActiveX部件不能创建对象”如何解决...
  13. wordwrap() 函数
  14. 胡适资助林语堂出国留学的故事
  15. git clone 报 “remote: The project you were looking for could not be found.”
  16. 关于黑苹果卡在[IGPU] Scheduler Throttle Cap=100ms的解决办法
  17. python将视频转为图片
  18. 详解多站点应用CSMA/CA原理进行无线传输的过程
  19. 利用绝对值编码器计算odom阿克曼运动学模型
  20. 【mycat】mycat分库分表

热门文章

  1. mysql cluster_redislt;3.cluster集群模式gt;
  2. php中const和define,PHP中const和define的区别是什么
  3. 评估指标:混淆矩阵、PR、mAP、ROC、AUC
  4. 【技术综述】视频分类/行为识别研究综述,从数据集到方法
  5. 胡秀光谋定邦源粮食银行-·万祥军:“互联网+”农业大健康
  6. http预请求options
  7. 一个数据仓库时代开始--Hive
  8. Oracle-存储过程实现更改用户密码
  9. HTML5+Bootstrap 学习笔记 1
  10. python在windows安装paramiko模块