LINQ系列:LINQ to ADO.NET概述
LINQ to ADO.NET 包括兩種獨(dú)立的技術(shù): LINQ to DataSet 和 LINQ to SQL。 使用 LINQ to DataSet 可以對(duì)DataSet 執(zhí)行豐富而優(yōu)化的查詢,而使用 LINQ to SQL 可以直接查詢 SQL Server 數(shù)據(jù)庫(kù)架構(gòu)。
由 LINQ to DataSet 和 LINQ to SQL 實(shí)現(xiàn)的 LINQ提供程序可以將源數(shù)據(jù)轉(zhuǎn)換為基于 IEnumerable 的對(duì)象集合。
1. LINQ to DataSet
DataSet 是賴以生成 ADO.NET 的斷開(kāi)連接式編程模型的關(guān)鍵元素,LINQ to DataSet 使開(kāi)發(fā)人員能夠通過(guò)使用許多其他數(shù)據(jù)源可用的同樣的查詢表述機(jī)制在 DataSet 中內(nèi)置更豐富的查詢功能。
使用 LINQ to DataSet 可以更快更容易地查詢?cè)?DataSet 對(duì)象中緩存的數(shù)據(jù)。通過(guò)使用編程語(yǔ)言本身而不是通過(guò)使用單獨(dú)的查詢語(yǔ)言來(lái)編寫查詢,LINQ to DataSet 可以簡(jiǎn)化查詢。
LINQ to DataSet 也可用于查詢從一個(gè)或多個(gè)數(shù)據(jù)源合并的數(shù)據(jù)。
LINQ to DataSet 功能主要通過(guò) DataRowExtensions 和 DataTableExtensions 類中的擴(kuò)展方法公開(kāi)。LINQ to DataSet基于并使用現(xiàn)有的 ADO.NET 2.0 體系結(jié)構(gòu)生成,在應(yīng)用程序代碼中不能替換 ADO.NET 2.0。
只要在填充 DataSet 后,就可以開(kāi)始使用 LINQ to DataSet 來(lái)查詢 DataSet 對(duì)象。 向 DataSet 中加載數(shù)據(jù)有多種方法,如使用 DataAdapter 類或 LINQ to SQL。 將數(shù)據(jù)加載到 DataSet 對(duì)象后,可以開(kāi)始查詢數(shù)據(jù)。
使用 LINQ to DataSet 來(lái)表述查詢類似于對(duì)其他啟用 LINQ 的數(shù)據(jù)源使用Language-Integrated Query (LINQ)。
LINQ 查詢可以對(duì) DataSet 中的單個(gè)表執(zhí)行,也可以通過(guò)使用 Join 和 GroupJoin 標(biāo)準(zhǔn)查詢運(yùn)算符對(duì)多個(gè)表執(zhí)行。
支持對(duì)類型化和非類型化 DataSet 對(duì)象執(zhí)行 LINQ 查詢。 如果在應(yīng)用程序設(shè)計(jì)時(shí)已知 DataSet 的架構(gòu),則建議使用類型化 DataSet。 在類型化 DataSet ,表和行對(duì)每個(gè)列都具有類型化成員,從而使查詢更簡(jiǎn)單并且更具可讀性。
除了 System.Core.dll 中實(shí)現(xiàn)的標(biāo)準(zhǔn)查詢運(yùn)算符外,LINQ to DataSet 還添加了多種 DataSet 特定擴(kuò)展,從而可以更容易地查詢一組 DataRow 對(duì)象。 這些 DataSet 定擴(kuò)展包括用于比較行序列的運(yùn)算符以及用于訪問(wèn)DataRow 的列值的方法。
2.?LINQ to SQL
LINQ to SQL 是適合不需要映射到概念模型的開(kāi)發(fā), 通過(guò)使用 LINQ to SQL,可以直接在現(xiàn)有數(shù)據(jù)庫(kù)架構(gòu)上直接使用 LINQ 編程模型。LINQ to SQL 能夠生成表示數(shù)據(jù)的 .NETFramework 類。 這些生成的類直接映射到數(shù)據(jù)庫(kù)表、視圖、存儲(chǔ)過(guò)程和用戶定義的函數(shù),而不映射到概念數(shù)據(jù)模型。使用 LINQ to SQL 時(shí),除了其他數(shù)據(jù)源(如 XML)外,還可以使用與內(nèi)存集合和 DataSet 相同的LINQ 編程模式直接編寫針對(duì)存儲(chǔ)架構(gòu)的代碼。
轉(zhuǎn)載于:https://www.cnblogs.com/libingql/p/4045720.html
總結(jié)
以上是生活随笔為你收集整理的LINQ系列:LINQ to ADO.NET概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 网络安全系列之十一 系统命令注入***
- 下一篇: Firefox OS, 向jQuery中