查詢是從數據源擷取數據的表達式。 查詢通常以特製化查詢語言表示,例如關係資料庫 SQL 和 XML 的 XQuery。 因此,開發人員必須針對所查詢的每個數據源或數據格式,學習新的查詢語言。 Language-Integrated 查詢 (LINQ) 提供更簡單、一致的模型,可用於處理各種數據源和格式的數據。 在 LINQ 查詢中,您一律會使用程式物件。
LINQ 查詢作業包含三個動作:取得數據源或來源、建立查詢,以及執行查詢。
您可以透過LINQ查詢實 IEnumerable<T> 作泛型介面或泛型介面的 IQueryable<T> 數據源。 泛型類別的實例會實作泛 ObjectQuery<T> 型 IQueryable<T> 介面,做為LINQ to Entities查詢的數據源。 泛 ObjectQuery<T> 型類別代表會傳回零個或多個具型別物件的集合的查詢。 您也可以使用 C# 關鍵詞 var 來讓編譯程式推斷實體的類型(Visual Basic 中的 Dim)。
在查詢中,您可以指定您想要從數據源擷取的資訊。 查詢也可以指定該資訊在傳回之前應該如何排序、分組和成形。 在 LINQ 中,查詢會儲存在變數中。 如果查詢傳回一連串的值,查詢變數本身必須是可查詢的類型。 此查詢變數不會採取任何動作,而且不會傳回任何數據;它只會儲存查詢資訊。 建立查詢之後,您必須執行該查詢以擷取任何數據。
查詢語法
LINQ to Entities 查詢可以組成兩種不同的語法:查詢表達式語法和方法型查詢語法。 查詢表達式語法是 C# 3.0 和 Visual Basic 9.0 的新功能,它是由一組以類似 Transact-SQL 或 XQuery 的宣告式語法所撰寫的子句所組成。 不過,.NET Framework Common Language Runtime (CLR) 無法讀取查詢表達式語法本身。 因此,在編譯時期,查詢表達式會轉譯為CLR所瞭解的內容:方法呼叫。 這些方法稱為 標準查詢運算符。 身為開發人員,您可以選擇使用方法語法直接呼叫它們,而不是使用查詢語法。 如需詳細資訊,請參閱 LINQ 中的查詢語法和方法語法。
查詢表達式語法
查詢表達式是宣告式查詢語法。 此語法可讓開發人員以與 Transact-SQL 類似的高階語言撰寫查詢。 藉由使用查詢表達式語法,您甚至可以使用最少的程式代碼,對數據源執行複雜的篩選、排序和分組作業。 如需詳細資訊,請參閱基本查詢作業(Visual Basic)。 如需示範如何使用查詢表達式語法的範例,請參閱下列主題:
Method-Based 查詢語法
撰寫 LINQ to Entities 查詢的另一種方式是使用以方法為基礎的查詢。 以方法為基礎的查詢語法是LINQ運算符方法的直接方法呼叫序列,會將 Lambda 表達式當做參數傳遞。 如需詳細資訊,請參閱 Lambda 運算式。 如需示範如何使用方法型語法的範例,請參閱下列主題: