LINQ查詢簡單概述
學習LINQ時,經常會遇到LINQ查詢問題,這里將介紹LINQ查詢問題的解決方法。
在之前的C#版中,開發者應用許多不同的查詢語言來訪問不同的數據源。例如,要查詢一個XML文件,開發者會使用XPath,要查詢一個SQL數據庫,開發者將使用SQL。在過去這種方法十分有效,并且現在仍然是訪問各種數據的主要方法。但是,這種方法具有一些缺點。一個顯著的缺點在于:開發者必須以一種不同的語言,而非他們當前使用的語言(如SQL或XPath)來編寫查詢代碼。另一個缺點是,在執行某些查詢語言,如SQL時,開發者必須編寫映射代碼將查詢結果轉化為可用的C#業務對象。
C#3.0推出一種稱之為語言集成查詢(LINQ)的新方法。應用LINQ,開發者可以編寫出能夠搜索任何IEnumerable數據源的代碼。所以除了應用TSQL訪問MS SQL數據庫,應用XPath訪問XML文件外,他們還可以應用LINQ。
下面的代碼(列表C)是一個LINQ查詢的例子,它返回所有OrderCount大于10的顧客:
- using System;
- using System.Query;
- using System.Collections.Generic;
- public class SampleClass
- {
- static void Main()
- {
- List customers = GetCustomers();
- //Write our query to retrieve customers who have more than
- // 10 orders.
- IEnumerable queryResult = from customer in customers
- where customer.OrderCount > 10
- orderbycustomer.ID
- select customer;
- }
- }
LINQ與SQL或XPath不同,LINQ查詢用C#,而非第三方語言編寫。這樣,查詢就不會出現類型問題,開發者也就沒有必要編寫映射代碼把查詢返回的數據轉化成C#對象,而由LINQ API自動處理映射。
基本上,在ORM解決方案中,LINQ對象用途很大。同樣,它的范圍也非常廣泛,有大量MSDM信息描述了它的功能。
【編輯推薦】

















