新聞中心
在向大家詳細介紹LINQ to DataSet查詢之前,首先讓大家了解下LINQ to DataSet主要是提供對離線數(shù)據(jù)的支持,然后全面介紹LINQ to DataSet查詢。

創(chuàng)新互聯(lián)公司專注于欽州企業(yè)網(wǎng)站建設,響應式網(wǎng)站開發(fā),商城網(wǎng)站制作。欽州網(wǎng)站建設公司,為欽州等地區(qū)提供建站服務。全流程按需網(wǎng)站建設,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
LINQ to DataSet主要是提供對離線數(shù)據(jù)的支持,只有在填充DataSet之后,我們才能使用LINQ to DataSet查詢數(shù)據(jù)。其功能主要是通過System.Data.DataRowExtions和System.Data.DataTableExtensions兩個靜態(tài)類中的擴展方法來公開的。LINQ to DataSet是LINQ to ADO.Net中的一部分,但這部分所占比重非常小,內(nèi)容也比較少。
下面就讓我們首先來看看DataTableExtensions中的擴展方法:
- public static EnumerableRowCollection
AsEnumerable(this DataTable source)- public static DataView AsDataView(this DataTable table)
- public static DataView AsDataView
>
(this EnumerableRowCollectionsource) where T : DataRow - public static DataTable CopyToDataTable
>
(this IEnumerablesource) where T : DataRow - public static void CopyToDataTable
(this IEnumerable source,
DataTable table,LoadOption options) where T : DataRow- public static void CopyToDataTable
(this IEnumerable source,
DataTable table,LoadOption options,FillErrorEventHandler errorHandler)
where T : DataRow
從定義中就可以看出這三類主要是提供DataTable、DataView和IEnumerable三者之間的轉換。大家都知道LINQ to Object查詢主要是對IEnumerable序列進行的操作,這樣就使得DataTable、DataView和LINQ之間建立了一個轉換橋梁。
因此,在我們需要將DataTable應用于LINQ to DataSet查詢是要先調(diào)用AsEnumerable完成DataTable到LINQ的轉換。如果我們需要將LINQ to DataSet查詢的結果進行數(shù)據(jù)綁定時我們需要調(diào)用AsDataView的泛型版來完成LINQ到DataView的轉換。當然我們也可以使用CopyToDataTable來進行LINQ到DataTable的轉換。
注意:如果在我們完成了DataTable到LINQ(IEnumerable) 的轉換之后(也就是調(diào)用AsEnumerable擴展方法),需要進行兩個DataRow序列的集合操作如 Distinct,Union,Except,Intersect,SequenceEqual,這些操作都需要對數(shù)據(jù)源中的元素進行相等比較,由于缺省情況下都是調(diào)用數(shù)據(jù)源中的元素的GetHashCode和Equals操作來判斷的,對于DataRow而言就是判斷對象的引用是否相等,這樣可能會導致我們不期望的結果(DataRow里面的數(shù)據(jù)內(nèi)容是相同的,但不是同一個對象),所以我們要使用 Distinct,Union,Except,Intersect,SequenceEqual帶IEqualityComparer的重載版本,使用 System.Data.DataRowComparer.Default作為參數(shù)。這個比較器類是.Net3.5專門為LINQ to DataSet新增加的,用于比較DataRow的值的,它是通過先比較DataColumn的數(shù)量,然后使用該列中類型的Equals方法進行比較。
不帶LoadOptions參數(shù)的CopyToDataTable方法將自動為每一行的每一個字段創(chuàng)建(更新)原始版本和當前版本,帶有 LoadOptions參數(shù)的CopyToDataTable重載版本可以讓你指定是創(chuàng)建(更新)原始版本或是當前版本,或者兩者都填充。 LoadOptions選項有下面三個選項值可以選擇:
◆OverwriteChanges: 創(chuàng)建(更新)每一列的當前值和原始值
◆PreserveChanges: 創(chuàng)建(更新)每一列的原始值
◆Upset: 創(chuàng)建(更新)每一列的當前值
以上介紹LINQ to DataSet查詢。
【編輯推薦】
- LINQ查詢操作經(jīng)驗總結
- LINQ遍歷多個數(shù)組深入剖析
- Linq查詢Access數(shù)據(jù)文件淺談
- LINQ構建框架設計學習筆記
- LINQ重要組成部分簡介
本文標題:LINQ to DataSet查詢詳解
本文鏈接:http://www.dlmjj.cn/article/cdioehs.html


咨詢
建站咨詢
