LINQ是Language Integrated Query的簡稱,它是集成在.NET編程語言中的一種特性。已成為編程語言的一個組成部分,在編寫程序時可以得到很好的編譯時語法檢查,豐富的元數據,智能感知、靜態類型等強類型語言的好處。並且它同時還使得查詢可以方便地對內存中的信息進行查詢而不僅僅只是外部數據源。
LINQ定義了一組標准查詢操作符用於在所有基於.NET平台的編程語言中更加直接地聲明跨越、過濾和投射操作的統一方式,標准查詢操作符允許查詢作用於所有基於IEnumerable<T>接口的源,並且它還允許適合於目標域或技術的第三方特定域操作符來擴大標准查詢操作符集,更重要的是,第三方操作符可以用它們自己的提供附加服務的實現來自由地替換標准查詢操作符,根據LINQ模式的習俗,這些查詢喜歡采用與標准查詢操作符相同的語言集成和工具支持。
我們來總體看看LINQ架構
在.NET3.5下,[url=javascript:;]微軟[/url]為我們提供了一些命名空間
LINQ包括五個部分:LINQ to Objects、LINQ to DataSets、LINQ to [url=javascript:;]SQL[/url]、LINQ to Entities、LINQ to XML。
LINQ to SQL全稱基於關系數據的.NET語言集成查詢,用於以對象形式[url=javascript:;]管理[/url]關系數據,並提供了豐富的查詢功能。其建立於公共語言類型系統中的基於SQL的模式定義的集成之上,當保持關系型模型表達能力和對底層存儲的直接查詢評測的性能時,這個集成在關系型數據之上提供強類型。
LINQ to XML在System.Xml.LINQ命名空間下實現對XML的操作。采用高效、易用、內存中的XML工具在宿主編程語言中提供XPath/XQuery功能等。
說了這麼多,我們還是用一個簡單的實例說明一下LINQ帶來的體驗。
第一步:建立dbml(Database Mark Language。[url=javascript:;]數據庫[/url]描述語言,是一種xml格式的文檔,用來描述數據庫)文件,以Northwind數據庫為例,上述Customers類被映射成一個表,對應數據庫中的 Customers表
第二步:創建一個ASP.NET頁面,在頁面上加入一個GridView控件
第三步:編寫代碼進行數據綁定
第四步:運行顯示結果。