共用方式為


Visual Studio 中的 LINQ to SQL 工具

LINQ to SQL 是第一種由 Microsoft 發行的物件關係型對應技術。 它在基本場景中運作良好,而且會在 Visual Studio 中繼續受到支援,但已經停止積極開發。 維護已使用它的舊版應用程式,或在使用 SQL Server 且不需要多重數據表對應的簡單應用程式中,請使用 LINQ to SQL。 一般而言,當需要對象關係型對應層時,新的應用程式應該使用 Entity Framework。

安裝 LINQ to SQL 工具

在 Visual Studio 中,您會使用 物件關係型設計工具 建立 LINQ to SQL 類別(O/R 設計工具)。 O/R 設計工具是用來編輯 .dbml 檔案的 UI。 使用設計介面編輯 .dbml 檔案需要 LINQ to SQL 工具,而這些工具並未隨 Visual Studio 的任何工作負載項目預設安裝。

若要安裝 LINQ to SQL 工具,請啟動 Visual Studio 安裝程式,選擇 [修改],然後選取 [個別元件] 索引卷標,然後選取 [LINQ to SQL 工具]Code Tools 類別下。

什麼是 O/R 設計工具

O/R 設計工具 在其設計介面上有兩個不同的區域:左側的實體窗格,以及右邊的方法窗格。 [實體] 窗格是顯示實體類別、關聯和繼承階層的主要設計介面。 方法窗格是用來顯示映射到預存程序和函式的 DataContext 方法的設計介面。

O/R 設計工具 提供可視化設計介面,以建立以資料庫中對象為基礎的 LINQ to SQL 實體類別和關聯性。 換句話說,O/R 設計工具 會在對應至資料庫中物件的應用程式中建立物件模型。 它也會產生強類型的 DataContext,在實體類別與資料庫之間傳送和接收資料。 O/R 設計工具 也提供將預存程式和函式對應至傳回數據和填入實體類別 DataContext 方法的功能。 最後,O/R 設計工具 可讓您設計實體類別之間的繼承關聯性。

開啟 O/R 設計工具

若要將 LINQ to SQL 實體模型新增至專案,請選擇 [專案]>[新增專案],然後從專案專案清單中選取 [LINQ to SQL 類別

顯示 LINQ to SQL 類別的螢幕快照。

Visual Studio 會建立 .dbml 檔案,並將其新增至您的解決方案。 這是 XML 對應檔及其相關的程式碼檔案。

顯示 [方案總管] 中 LINQ to SQL 類別的螢幕快照。

當您選取 .dbml 檔案時,Visual Studio 會顯示 O/R 設計工具 介面,可讓您以可視化方式建立模型。 下圖顯示將 Northwind CustomersOrders 數據表從 伺服器總管拖曳之後的設計工具。 請注意數據表之間的關聯性。

顯示 LINQ to SQL 設計工具的螢幕快照。

重要

O/R 設計工具 是簡單的物件關係對應程式,因為它只支援 1:1 對應關聯性。 換句話說,實體類別只能有與資料庫數據表或檢視表的 1:1 對應關聯性。 不支援將實體類別對應至聯結數據表等複雜對應;使用 Entity Framework 進行複雜的對應。 此外,設計師是一個單向程式碼生成器。 這表示只有您對設計工具介面所做的變更才會反映在程式碼檔案中。 手動變更程式碼檔案不會反映在 O/R 設計工具中。 儲存設計工具並重新生成程式碼時,您在程式碼檔案中手動進行的任何變更都將被覆寫。 如需如何新增使用者程式代碼及擴充 O/R 設計工具所產生的類別的詳細資訊,請參閱 如何:擴充 O/R 設計工具所產生的程式代碼

建立及設定 DataContext

在專案中加入 LINQ to SQL 類別 項目並開啟 O/R 設計工具之後,空的設計介面表示一個準備好設定的空白 DataContextDataContext 會根據第一個被拖曳到設計表面的項目所提供的連接資訊進行配置。 因此,DataContext 是使用從第一個項目放入設計介面的連線資訊來設定。 如需 DataContext 類別的詳細資訊,請參閱 DataContext 方法 (O/R Designer)

建立對應至資料庫數據表和檢視的實體類別

您可以將資料庫數據表和檢視從 伺服器總管資料庫總管 拖曳到 O/R 設計工具,以建立對應至數據表和檢視的實體類別。 如上一節所述,DataContext 會配置由第一個被拖曳到設計介面上的項目所提供的連接資訊。 如果後續使用不同連接的專案新增至 O/R 設計工具,您可以變更 DataContext的連接。 如需詳細資訊,請參閱 如何:建立對應至數據表和檢視表的 LINQ to SQL 類別(O/R 設計工具)

建立呼叫儲存程序和函數的 DataContext 方法

您可以將預存程式和函式從 DataContext資料庫總管 拖曳到 O/R 設計工具,以建立 方法。 預存程式和函式會新增至 O/R 設計工具 做為 DataContext的方法。

注意

當您將預存程式和函式從 伺服器總管資料庫總管 拖曳到 O/R 設計工具時,產生的 DataContext 方法的傳回類型會根據您卸除專案的位置而有所不同。 如需詳細資訊,請參閱 DataContext 方法 (O/R 設計工具)

設定 DataContext 以使用預存程式在實體類別與資料庫之間儲存數據

如先前所述,您可以建立呼叫預存程式和函式的 DataContext 方法。 此外,您也可以指派用於預設 LINQ to SQL 執行時間行為的預存程式,以執行插入、更新和刪除。 如需詳細資訊,請參閱 如何:指派預存程式來執行更新、插入和刪除 (O/R 設計工具)

繼承和 O/R 設計器

如同其他物件,LINQ to SQL 類別可以使用繼承,並衍生自其他類別。 在資料庫中,會以數種方式建立繼承關聯性。 O/R 設計工具 支援單一數據表繼承的概念,因為它通常會在關係型系統中實作。 如需詳細資訊,請參閱 如何:使用 O/R 設計工具設定繼承

LINQ to SQL 查詢

O/R 設計工具 所建立的實體類別是設計來搭配 Language Integrated Query (LINQ)使用。 如需詳細資訊,請參閱 如何:查詢的資訊。

將產生的 DataContext 和實體類別程式代碼分成不同的命名空間

O/R 設計工具 會在 上提供 Context NamespaceDataContext 属性。 這些屬性決定了 DataContext 和實體類類別代碼將產生到哪個命名空間。 根據預設,這些屬性是空的,DataContext 和實體類別會產生至應用程式的命名空間。 若要將程式代碼產生至應用程式命名空間以外的命名空間,請在 Context Namespace 和/或 Entity Namespace 屬性中輸入值。

參考內容

另請參閱