您可以使用與 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 子句,但更有效率地使用 AssociationAttribute 屬性。 如需詳細資訊,請參閱 跨關聯性查詢。 |
| 遠端與本機執行 | 如需詳細資訊,請參閱 遠端與本機執行。 | |
| 串流與快取查詢 | 不適用於在本機記憶體情境 |