HOW TO:產生自訂物件層程式碼 (實體資料模型設計工具)
本主題說明如何使用 ADO.NET 實體資料模型設計工具 (Entity Designer) 和文字範本來自訂產生物件內容和實體類別 (物件層程式碼)。
根據預設,Entity Designer 使用 EntityModelCodeGenerator 自訂工具產生物件層程式碼 (如需詳細資訊,請參閱產生的程式碼概觀 (實體資料模型設計工具))。 將文字範本加入至專案時,實體設計工具會使用該範本產生物件層程式碼,而不使用預設自訂工具。
注意: |
---|
也可以使用命令列工具來產生文字範本的物件層程式碼。如需詳細資訊,請參閱文字範本的命令列工具 (英文)。 |
Visual Studio 提供了兩個可產生 Entity Framework 物件層程式碼的 ADO.NET 範本:[ADO.NET EntityObject Generator] 和 [ADO.NET 自我追蹤實體產生器]。 [ADO.NET EntityObject Generator] 與 EntityModelCodeGenerator 自訂工具會產生相同的程式碼。 [ADO.NET 自我追蹤實體產生器] 範本會產生包含自我追蹤狀態邏輯的實體類別。 使用多層式架構 (N-Tier) 應用程式時,請使用自我追蹤實體。 如需 ADO.NET 範本的詳細資訊,請參閱 ADO.NET EntityObject Generator 範本和ADO.NET 自我追蹤實體產生器範本。
此程序會假設下列事項:
有一個以 .NET Framework 4 為目標,用 Visual Studio 2010 開啟的 Visual Basic 或 C# 專案。
有一個在 Entity Designer 中開啟的 .edmx 檔案。
您對自訂文字範本十分熟悉。 如需文字範本的詳細資訊,請參閱<產生成品(英文)。
若要自訂物件層程式碼產生
用滑鼠右鍵按一下實體設計工具介面上的空白區域,指向 [加入產生程式碼項目],然後選取可用範本。 如果看不到可用範本,請在 [已安裝的範本] 窗格中選取 [程式碼]。
程式碼產生項目會將一個或多個文字範本 (.tt) 檔案加入至專案。 這些文字範本會產生物件層程式碼。 產生的檔案會加入至 .tt 檔案底下。 如果沒有修改該範本,產生的程式碼會與 Entity Designer 產生的程式碼相同。
將文字範本加入專案時,Visual Studio 會執行下列工作:
將概念模型的 [程式碼產生策略] 屬性設定為 [無]。 這樣會關閉產生預設程式碼。
將新的文字範本檔案加入至與 .edmx 檔案所在目錄相同的專案。
將相對於文字範本的 .edmx 檔案路徑插入至文字範本。 完成後,文字範本會執行正確的 .edmx 檔案。
根據 .edmx 檔案,使用文字範本產生程式碼。 產生的程式碼會寫入
<text_template_name>.cs
或<text_template_name>.vb
檔案。 該檔案會加入至 [方案總管] 中的文字範本,作為相依檔案。
開啟文字範本並編輯。
儲存編輯過的文字範本檔案。
儲存文字範本檔案時,會依照已編輯過的文字範本檔案重新產生物件層程式碼。
根據預設,每次儲存 .edmx 檔案時,都會觸發產生 .edmx 檔案的物件層程式碼。 任何針對 <text_template_name>.cs
或 <text_template_name>.vb
程式碼檔案所進行的手動變更並不會保留。 如果 .edmx 檔案有多個文字範本檔案與其相關,在儲存 .edmx 檔案時會重新產生所有相關的程式碼檔案。 然而,可以變更此行為。 如果將概念模型的 [儲存時轉換相關文字範本] 屬性設定為 false,儲存檔案時不會重新產生程式碼檔案。
如果您將模型和 .tt 檔案分割成不同的專案,每次修改 .edmx 檔案或 .tt 檔案時,就應該手動執行程式碼產生。 您可以在 [方案總管] 中按一下 [轉換所有範本] 按鈕,藉以進行此作業。 Walkthrough: Serialize Self-Tracking Entities主題會示範如何將模型和 .tt 檔案分割成不同的專案。