LINQ to SQL 查詢

您使用與 LINQ 相同的語法,可以定義 LINQ to SQL 查詢。 唯一的差別在於查詢中參考的物件會對應至資料庫中的項目。 如需詳細資訊,請參閱 LINQ 查詢簡介 (C#)

LINQ to SQL 會將您撰寫的查詢轉譯為對等 SQL 查詢,並將其傳送給伺服器進行處理。 更精確的說,應用程式會使用 LINQ to SQL API 來要求執行查詢。 LINQ to SQL 提供者接著會將查詢轉換為 SQL 文字,並將執行委派給 ADO 提供者。 而 ADO 提供者會將查詢結果傳回為 DataReader。 然後,LINQ to SQL 提供者會將 ADO 結果轉譯為使用者物件的 IQueryable 集合。

注意

.NET Framework 內建型別的大部分方法和運算子都可以直接轉譯為 SQL。 LINQ 無法轉譯的部分則會產生執行階段例外狀況。 如需詳細資訊,請參閱 SQL-CLR 型別對應

下表顯示 LINQ 與 LINQ to SQL 查詢項目之間的相似及差異部分。

項目 LINQ 查詢 LINQ to SQL 查詢
保留查詢之區域變數的傳回型別 (適用於傳回序列的查詢) 泛型 IEnumerable 泛型 IQueryable
指定資料來源 使用 From (Visual Basic) 或 from (C#) 子句 相同
篩選 使用 Where/where 子句 相同
分組 使用 Group…By/groupby 子句 相同
選取 (投影) 使用 Select/select 子句 相同
延後執行與立即執行 請參閱 LINQ 查詢 (C#) 簡介 相同
實作聯結 (Join) 使用 Join/join 子句 可以使用 Join/join 子句,但是使用 AssociationAttribute 屬性的效率更佳。 如需詳細資訊,請參閱跨關聯性查詢
遠端執行與本機執行 如需詳細資訊,請參閱遠端與本機執行的比較
資料流 (Streaming) 與快取查詢 不適用於本機記憶體案例

另請參閱