O/R 設計工具概觀

物件關聯式設計工具 (O/R 設計工具) 提供視覺化設計介面,可讓您建立以資料庫中之物件為基礎的 LINQ to SQL [LINQ to SQL] 實體類別和關聯。換句話說,O/R 設計工具是用於建立應用程式中對應至資料庫內物件的物件模型。它同時會產生可以在實體類別和資料庫之間傳送和接收資料的強型別 (Strongly Typed) 的 DataContext。O/R 設計工具也提供功能,將預存程序 (Stored Procedure) 和函式對應至 DataContext 方法,以傳回資料並填入 (Populate) 實體類別。最後,O/R 設計工具還可以設計實體類別之間的繼承 (Inheritance) 關聯性。

O/R 設計工具會產生 .dbml 檔案,讓 LINQ to SQL 類別與資料庫物件之間相互對應。O/R 設計工具也會產生具型別的 DataContext 和實體類別。

O/R 設計工具的設計介面包含兩個不同區域:左邊的實體窗格以及右邊的方法窗格。實體窗格是主設計介面,可以顯示實體類別、關聯和繼承階層。方法窗格的設計介面,則可以顯示對應至預存程序和函式的 DataContext 方法。

注意事項注意事項

O/R 設計工具目前只支援 SQL Server 2000、SQL Server 2008 和 SQL Server Express 資料庫。LINQ to SQL 支援 SQL Server Compact 3.5,但 O/R 設計工具並不支援。如需詳細資訊,請參閱 SQL Server Compact 和 LINQ to SQL。如需如何取得 SQL Server Express 的詳細資訊,請參閱 如何:安裝範例資料庫主題中的<取得 SQL Server Express>一節。

開啟 O/R 設計工具

您可以將新的 [LINQ to SQL 類別] 項目加入至專案,藉以開啟 O/R 設計工具。如需詳細資訊,請參閱 HOW TO:將 LINQ to SQL 類別加入至專案 (O/R 設計工具)

重要

O/R 設計工具只支援一對一對應關聯性 (Relationship),因此是簡單的物件關聯對應程式。換句話說,實體類別與資料庫資料表或檢視之間只可以有一對一對應關聯性。目前不支援複雜對應 (例如,將實體類別對應至聯結資料表)。此外,這個設計工具是單向程式碼產生器。這表示只有您對設計工具介面進行的變更才會反映在程式碼檔案中。O/R 設計工具 中並不會反映程式碼檔的手動變更。儲存設計工具並重新產生程式碼時,會覆寫您在程式碼檔中進行的所有手動變更。如需如何加入使用者程式碼以及擴充 O/R 設計工具產生之類別的詳細資訊,請參閱 HOW TO:擴充 O/R 設計工具產生的程式碼

建立和設定 DataContext

將 [LINQ to SQL 類別] 項目加入至專案並開啟 O/R 設計工具 之後,空的設計介面代表已經可以設定的空 DataContextDataContext 會使用第一個拖曳至設計介面的項目所提供的連接資訊進行設定。因此,DataContext 會使用第一個放入設計介面之項目的連接資訊進行設定。如需 DataContext 類別的詳細資訊,請參閱 DataContext 方法 (O/R 設計工具)

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

您可以將資料庫資料表和檢視表從 [伺服器總管]/[資料庫總管] 拖曳至 O/R 設計工具,即可建立對應至資料表和檢視表的實體類別。如先前章節所示,第一個拖曳至設計介面之項目所提供的連接資訊會用於設定 DataContext。如果後續又將使用不同連接的項目加入至 O/R 設計工具,您可以變更 DataContext 的連接。如需詳細資訊,請參閱 HOW TO:建立對應到資料表和檢視的 LINQ to SQL 類別 (O/R 設計工具)

建立呼叫預存程序和函式的 DataContext 方法

將預存程序和函式從 [伺服器總管]/[資料庫總管] 拖曳至 O/R 設計工具,就可以建立呼叫 (對應至) 預存程序和函式的 DataContext 方法。預存程序和函式都會加入至 O/R 設計工具做為 DataContext 的方法。

注意事項注意事項

將預存程序和函式從 [伺服器總管]/[資料庫總管] 拖曳至 O/R 設計工具時,所產生 DataContext 方法的傳回型別會根據項目的置放位置而不同。如需詳細資訊,請參閱 DataContext 方法 (O/R 設計工具)

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

如前所述,您可以建立會呼叫預存程序和函式的 DataContext 方法。此外,還可以指派預存程序來提供執行插入、更新和刪除作業時的預設 LINQ to SQL 執行階段行為。如需詳細資訊,請參閱 HOW TO:指派預存程序來執行更新、插入和刪除 (O/R 設計工具)

繼承和 O/R 設計工具

LINQ to SQL 類別就像其他物件,可以使用繼承,也可以衍生自其他類別。在資料庫中,有數種方式可以建立繼承關聯性。O/R 設計工具通常是在關聯式系統中實作,因此支援單一資料表繼承概念。如需詳細資訊,請參閱 HOW TO:使用 O/R 設計工具設定繼承

LINQ to SQL 查詢

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

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

O/R 設計工具提供 DataContext 的 [內容命名空間] 和 [實體命名空間] 屬性。這些屬性會決定 DataContext 和實體類別程式碼產生時,會落在哪一個命名空間 (Namespace) 中。根據預設,這些屬性是空的,而且 DataContext 和實體類別產生時,會落在應用程式的命名空間中。產生程式碼時,如果希望使用其他的命名空間,而非應用程式的命名空間,請在 [內容命名空間] 和 (或) [實體命名空間] 屬性中輸入值。

請參閱

工作

逐步解說:建立 LINQ to SQL 類別 (O/R 設計工具)

HOW TO:指派預存程序來執行更新、插入和刪除 (O/R 設計工具)

其他資源

LINQ to SQL [LINQ to SQL]

LINQ General Programming Guide

LINQ to ADO.NET

Visual Studio 2012 中資料應用程式開發的新功能

物件關聯式設計工具 (O/R 設計工具)