共用方式為


LINQ to SQL (SQL Server Compact)

Language-Integrated Query (LINQ to SQL) 是 .NET Framework 3.5 的元件,可提供一種執行階段基礎結構,以便在不喪失查詢能力的情況下,將關聯式資料當做物件來管理。LINQ to SQL 會將 Language-Integrated Query 轉譯成 SQL 以便由資料庫執行,然後將表格式結果轉譯回您所定義的物件,藉以達成此目的。之後,應用程式便可自由地變更這些物件,而 LINQ to SQL 會保留在背景中,以便自動追蹤您的變更。

LINQ to SQL 執行階段基礎結構和設計階段工具可一起大幅減少資料庫應用程式開發人員的工作負載。LINQ to SQL 與語言無關。任何針對提供 Language-Integrated Query 所建立的語言都可以用它來存取儲存在關聯式資料庫中的資訊。

注意

關聯式資料會顯示成二維資料表 (關聯或一般檔案) 的集合,其中通用資料行會讓資料表彼此產生關聯。若要有效地使用 LINQ to SQL,您必須熟悉關聯式資料庫的基礎原則。

SQL Server Compact 中的 LINQ to SQL

根據預設,SQL Server Compact 3.5 會針對所有 Microsoft Visual Studio 2008 版本進行安裝而且在開發電腦上提供,以便與 LINQ to SQL 搭配使用。不過,使用 SQL Server Compact 3.5 和 LINQ to SQL 之應用程式的部署方式與部署 SQL Server 應用程式的程序有所不同。由於 SQL Server Compact 3.5 是內嵌的資料庫,因此它會使用引擎來封裝提供者。

SQL Server Compact 3.5 與 SQL Server 很相似,因為它必須與 .NET Framework 個別安裝。不過,SQL Server Compact 3.5 可以私下部署,或內嵌在應用程式中。這樣會讓本機資料的使用方式公開給應用程式的安裝需求。您可以在應用程式中嵌入 SQL Server Compact 3.5,也可以使用 SQL Server Compact 3.5 Windows Installer 檔 (SSCERuntime-<lang>.msi)。

SQL Server Compact 3.5 會封裝成一組可直接使用資料庫檔案 (.sdf) 的 DLL。這些 SQL Server Compact 3.5 DLL 檔很小,可減少整體應用程式大小。 內嵌的部署不需要管理權限就可以加入本機資料儲存功能。

SQL Server Compact 3.5 中 LINQ to SQL 功能的優點包括: 

  • 撰寫查詢的 SQL Server 語法很熟悉。

  • 可在編譯時間檢查語法錯誤和型別安全性。

  • 改善偵錯工具的支援。

  • 支援 IntelliSense。

  • 強大的篩選、排序和分組功能。

  • 在各種資料來源和格式中使用資料的模型一致。

與 SQL Server 的差異

SQL Server Compact 3.5 功能集會提供其他與本機內嵌資料狀況相關之 SQL Server 版本的豐富子集。透過使用內嵌的部署,SQL Server Compact 3.5 會針對在所有 Microsoft 用戶端 (從裝置到桌上型電腦) 之間一致的本機資料狀況,支援豐富的功能集。SQL Server Compact 3.5 中的 LINQ to SQL:

  • 支援 LINQ to SQL 執行階段和 SQLMetal 命令列工具。

  • 支援 SQL Server 資料類型和函數的豐富子集。

  • 支援與本機資料狀況相關之 SQL 建構的豐富子集。

  • 查詢最佳化工具是以本機資料狀況為目標,而且如果 LINQ to SQL 查詢變得太複雜 (相對於 SQL 查詢而言),查詢最佳化工具可能會逾時。

  • 不支援預存程序或檢視。

  • 不支援 Object Relational Designer。

  • 不支援部分信任。

若要最佳化 SQL Server Compact 3.5 中 LINQ to SQL 的效能,LINQ to SQL 編譯的查詢功能應該用來預先建立 Transact-SQL 查詢。您應該盡可能使用編譯的查詢。此外,如果不需要更新,您就應該在唯讀模式下使用 LINQ to SQL DataContext。若要設定 DataContext,請使用下列陳述式:

DataContext.ObjectTrackingEnabled=false

請參閱

其他資源

LINQ to SQL

Language-Integrated Query (LINQ)