查詢表達式(LINQ)簡介
LINQ是Language Integrated Query的簡稱,它是集成在.NET編程語言中的一種特性。已成為編程語言的一個組成部分,在編寫程序時可以得到很好的編譯時語法檢查,豐富的元數據,智能感知、靜態類型等強類型語言的好處。并且它同時還使得查詢可以方便地對內存中的信息進行查詢而不僅僅只是外部數據源。
LINQ定義了一組標準查詢操作符用于在所有基于.NET平臺的編程語言中更加直接地聲明跨越、過濾和投射操作的統一方式,標準查詢操作符允許查詢作用于所有基于IEnumerable<T>接口的源,并且它還允許適合于目標域或技術的第三方特定域操作符來擴大標準查詢操作符集,更重要的是,第三方操作符可以用它們自己的提供附加服務的實現來自由地替換標準查詢操作符,根據LINQ模式的習俗,這些查詢喜歡采用與標準查詢操作符相同的語言集成和工具支持。
我們來總體看看LINQ架構

在.NET3.5下,微軟為我們提供了一些命名空間

LINQ包括五個部分:LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML。
LINQ to SQL全稱基于關系數據的.NET語言集成查詢,用于以對象形式管理關系數據,并提供了豐富的查詢功能。其建立于公共語言類型系統中的基于SQL的模式定義的集成之上,當保持關系型模型表達能力和對底層存儲的直接查詢評測的性能時,這個集成在關系型數據之上提供強類型。
LINQ to XML在System.Xml.LINQ命名空間下實現對XML的操作。采用高效、易用、內存中的XML工具在宿主編程語言中提供XPath/XQuery功能等。
說了這么多,我們還是用一個簡單的實例說明一下微軟LINQ to SQL框架為我們帶來的體驗。