設計工具程式碼產生範本

當您使用 Entity Framework Designer 建立模型時,會自動為您產生類別和衍生的內容。 除了預設程式碼產生之外,我們也提供許多範本,可用於自訂產生的程式碼。 這些範本會以 T4 文字範本的形式提供,讓您可根據需要來自訂範本。

預設產生的程式碼,取決於您在哪個版本的 Visual Studio 中建立模型:

  • 在 Visual Studio 2012 和 2013 中建立的模型,將產生簡單的 POCO 實體類別,以及簡化的 DbContext 衍生內容。
  • 在 Visual Studio 2010 中建立的模型,將產生從 EntityObject 衍生的實體類別,以及從 ObjectContext 衍生的內容。

注意

在您新增模型後,我們建議切換至 DbContext 產生器範本。

本頁面包含可用的範本,並提供將範本新增至模型的指示。

可用的範本

Entity Framework 小組提供下列範本:

DbContext 產生器

此範本將產生簡單的 POCO 實體類別,以及使用 EF6 從 DbContext 衍生的內容。 這是建議的範本,除非您有理由使用下面列出的其他範本之一。 如果您使用的是 Visual Studio 最新版本 (Visual Studio 2013 以上版本),則此範本也是您預設會取得的程式碼產生範本:建立新模型時,預設會使用此範本,並且 T4 檔案 (.tt) 會巢狀於您的 .edmx 檔案下。

Visual Studio 舊版

  • Visual Studio 2012:若要取得 EF 6.x DbContextGenerator 範本,您必須安裝最新的 Entity Framework Tools for Visual Studio - 請參閱取得Entity Framework 頁面以取得詳細資訊。
  • Visual Studio 2010:EF 6.x DbContextGenerator 範本不適用於 Visual Studio 2010。

適用於 EF 5.x 的 DbContext 產生器

如果您使用較舊版本的 EntityFramework NuGet 套件 (主要版本為 5),則必須使用 EF 5.x DbContext 產生器範本。

如果您使用 Visual Studio 2013 或 2012,則此範本已安裝。

如果您使用 Visual Studio 2010,則在新增範本時需要選取 [線上] 索引標籤以從 Visual Studio 組件庫下載。 或者,您可以直接從 Visual Studio 組件庫中預先安裝此範本。 由於更新版本的 Visual Studio 中已包含範本,因此組件庫中的版本只能安裝於 Visual Studio 2010。

適用於 EF 4.x 的 DbContext 產生器

如果您使用較舊版本的 EntityFramework NuGet 套件 (主要版本為 4),則必須使用 EF 4.x DbContext 產生器範本。 新增範本時,您可在 [線上] 索引標籤中找到此範本,或者您也可以直接從 Visual Studio 組件庫中預先安裝此範本。

EntityObject 產生器

此範本將產生從 EntityObject 衍生的實體類別,以及從 ObjectContext 衍生的內容。

注意

考慮使用 DbContext 產生器

DbContext 產生器現在是新應用程式的建議範本。 DbContext 產生器會利用更簡單的 DbContext API。 EntityObject 產生器仍然可用來支援現有應用程式。

Visual Studio 2010、2012 和 2013

在您新增範本時需要選取 [線上] 索引標籤以從 Visual Studio 組件庫下載。 或者,您可以直接從 Visual Studio 組件庫中預先安裝此範本。

EntityObject Generator for EF 5.x (適用於 EF 5.x 的 EntityObject 產生器)

如果您使用 Visual Studio 2012 或 2013,則在新增範本時需要選取 [線上] 索引標籤以從 Visual Studio 組件庫下載。 或者,您可以直接從 Visual Studio 組件庫中預先安裝此範本。 因為範本包含在 Visual Studio 2010 中,因此資源庫上的版本只能安裝在 Visual Studio 2012 和 2013 上。

如果您只希望產生 ObjectContext 程式碼而無需編輯範本,則可以還原為 EntityObject 程式碼產生

如果您使用 Visual Studio 2010,則此範本已安裝。 如果您在 Visual Studio 2010 中建立新模型,則預設會使用此範本,但 .tt 檔案不包含在您的專案中。 如果您希望自訂範本,則您必須將其新增至您的專案。

自我追蹤實體 (STE) 產生器

此範本將產生自我追蹤實體類別,以及從 ObjectContext 衍生的內容。 在 EF 應用程式中,內容負責追蹤實體中的變更。 不過,在多層式架構 (N-Tier) 案例中,內容可能無法在修改實體的層上使用。 自我追蹤實體可協助您追蹤任何層中的變更。 如需詳細資訊,請參閱自我追蹤實體

注意

不建議使用 STE 範本

我們不再建議在新應用程式中使用 STE 範本,但此範本會繼續支援現有應用程式。 請瀏覽已中斷連線的實體文章,了解我們為多層式架構 (N-Tier) 案例推薦的其他選項。

注意

沒有 EF 6.x 版本的 STE 範本。

注意

沒有 Visual Studio 2013 版本的 STE 範本。

Visual Studio 2012

如果您使用 Visual Studio 2012,則在新增範本時需要選取 [線上] 索引標籤以從 Visual Studio 組件庫下載。 或者,您可以直接從 Visual Studio 組件庫中預先安裝此範本。 由於 Visual Studio 2010 中已包含範本,因此組件庫中的版本只能安裝於 Visual Studio 2012。

Visual Studio 2010**

如果您使用 Visual Studio 2010,則此範本已安裝。

POCO 實體產生器

此範本將產生 POCO 實體類別,以及從 ObjectContext 衍生的內容

注意

考慮使用 DbContext 產生器

DbContext 產生器現在是用於在新應用程式中產生 POCO 類別的建議範本。 DbContext 產生器會利用新的 DbContext API,並可產生更簡單的 POCO 類別。 POCO 實體產生器仍然可用來支援現有應用程式。

注意

沒有 EF 5.x 或 EF 6.x 版本的 STE 範本。

注意

沒有 Visual Studio 2013 版本的 POCO 範本。

Visual Studio 2012 和 Visual Studio 2010

在您新增範本時需要選取 [線上] 索引標籤以從 Visual Studio 組件庫下載。 或者,您可以直接從 Visual Studio 組件庫中預先安裝此範本。

什麼是「網站」範本

「網站」範本 (例如適用於 C# 網站的 EF 5.x DbContext 產生器) 適合用在透過 [檔案] -> [新增] -> [網站] 建立的網站專案。這些範本和透過 [檔案] -> [新增] -> [專案] 建立的 Web 應用程式不同,後者使用標準範本。 我們提供不同的範本,因為 Visual Studio 中的項目範本系統需要。

使用範本

若要開始使用程式碼產生範本,請以滑鼠右鍵按一下 EF Designer 中設計介面上的空白點,然後選取 [新增程式碼產生項目...]

Add Code Gen Item

如果您已經安裝要使用的範本 (或者已包含在 Visual Studio 中),則範本將在左側功能表的 [程式碼] 或 [資料] 區段下可用。

Installed Template

如果您尚未安裝範本,請從左側功能表中選取 [線上],然後搜尋所需的範本。

Search Template 

如果您使用 Visual Studio 2012,則新的 .tt 檔案將巢狀於 .edmx 檔案下。*

注意

對於在 Visual Studio 2012 中建立的模型,您將需要刪除用於預設程式碼產生的範本,否則您將產生重複的類別和內容。 預設檔案為 <模型名稱>.tt<模型名稱>.context.tt。 

VS2012 Templates

如果您使用 Visual Studio 2010,tt 檔案會直接新增至您的專案。  

VS2010 Templates