这里介绍使用LINQ to DataSet查询数据,其功能主要是通过System.Data.DataRowExtions和System.Data.DataTableExtensions两个静态类中的扩展方法来公开的。

在向咱们具体介绍LINQ to DataSet查询之前,首要让咱们了解下LINQ to DataSet主要是供给对离线数据的支撑,然后全面介绍LINQ to DataSet查询。

LINQ to DataSet查询详解(什么是LINQ DataSet?)  DataSet查询 第1张

LINQ to DataSet主要是供给对离线数据的支撑,只要在填充DataSet之后,咱们才干运用LINQ to DataSet查询数据。其功用主要是经过System.Data.DataRowExtions和System.Data.DataTableExtensions两个静态类中的扩展办法来揭露的。LINQ to DataSet是LINQ to ADO.Net中的一部分,但这部分所占比重十分小,内容也比较少。

下面就让咱们首要来看看DataTableExtensions中的扩展办法:

  1. publicstaticEnumerableRowCollection<DataRow>
    AsEnumerable(thisDataTablesource)
  2. publicstaticDataViewAsDataView(thisDataTabletable)
  3. publicstaticDataViewAsDataView<T>
    (thisEnumerableRowCollection<T>source)whereT:DataRow
  4. publicstaticDataTableCopyToDataTable<T>
    (thisIEnumerable<T>source)whereT:DataRow
  5. publicstaticvoidCopyToDataTable<T>(thisIEnumerable<T>source,
    DataTabletable,LoadOptionoptions)whereT:DataRow
  6. publicstaticvoidCopyToDataTable<T>(thisIEnumerable<T>source,
    DataTabletable,LoadOptionoptions,FillErrorEventHandlererrorHandler)
    whereT:DataRow

从界说中就能够看出这三类主要是供给DataTable、DataView和IEnumerable三者之间的转化。咱们都知道LINQ to Object查询主要是对IEnumerable序列进行的操作,这样就使得DataTable、DataView和LINQ之间建立了一个转化桥梁。

因而,在咱们需求将DataTable应用于LINQ to DataSet查询是要先调用AsEnumerable完结DataTable到LINQ的转化。假如咱们需求将LINQ to DataSet查询的成果进行数据绑守时咱们需求调用AsDataView的泛型版来完结LINQ到DataView的转化。当然咱们也能够运用CopyToDataTable来进行LINQ到DataTable的转化。

留意:假如在咱们完结了DataTable到LINQ(IEnumerable) 的转化之后(也便是调用AsEnumerable扩展办法),需求进行两个DataRow序列的调集操作如 Distinct,Union,Except,Intersect,SequenceEqual,这些操作都需求对数据源中的元素进行持平比较,因为缺省情况下都是调用数据源中的元素的GetHashCode和Equals操作来判别的,关于DataRow而言便是判别目标的引证是否持平,这样可能会导致咱们不希望的成果(DataRow里边的数据内容是相同的,但不是同一个目标),所以咱们要运用 Distinct,Union,Except,Intersect,SequenceEqual带IEqualityComparer的重载版别,运用 System.Data.DataRowComparer.Default作为参数。这个比较器类是.Net3.5专门为LINQ to DataSet新添加的,用于比较DataRow的值的,它是经过先比较DataColumn的数量,然后运用该列中类型的Equals办法进行比较。

不带LoadOptions参数的CopyToDataTable办法将主动为每一行的每一个字段创立(更新)原始版别和当时版别,带有 LoadOptions参数的CopyToDataTable重载版别能够让你指定是创立(更新)原始版别或是当时版别,或许两者都填充。 LoadOptions选项有下面三个选项值能够挑选:
◆OverwriteChanges: 创立(更新)每一列的当时值和原始值
◆PreserveChanges: 创立(更新)每一列的原始值
◆Upset: 创立(更新)每一列的当时值
以上介绍LINQ to DataSet查询。

【修改引荐】

  1. LINQ查询操作经验总结
  2. LINQ遍历多个数组深化分析
  3. Linq查询Access数据文件浅谈
  4. LINQ构建结构规划学习笔记
  5. LINQ重要组成部分简介
转载请说明出处
知优网 » LINQ to DataSet查询详解(什么是LINQ to DataSet?)

发表评论

您需要后才能发表评论