EDM 產生器 (EdmGen.exe)

EdmGen.exe 是用於處理 Entity Framework 模型和對應檔案的命令列工具。 您可以使用 EdmGen.exe 工具執行下列動作:

EdmGen.exe 工具是安裝在 .NET Framework 目錄。 在許多情況下,這是位於 C:\windows\Microsoft.NET\Framework\v4.0。 若為 64 位元系統,則是位於 C:\windows\Microsoft.NET\Framework64\v4.0。 您也可以從 Visual Studio 命令提示字元 (按一下 [開始],依序指向 [所有程式]、[Microsoft Visual Studio 2010] 和 [Visual Studio Tools],然後按一下 [Visual Studio 2010 命令提示字元]) 存取 EdmGen.exe 工具。

語法

EdmGen /mode:choice [options]

[模式]

使用 EdmGen.exe 工具時,必須指定下列其中一個模式。

[模式] 描述
/mode:ValidateArtifacts 驗證 .csdl、.ssdl 和 .msl 檔案,並顯示任何錯誤或警告。

這個選項至少需要 /inssdl/incsdl 兩個引數其中之一。 如果指定 /inmsl,則也要有 /inssdl/incsdl 引數。
/mode:FullGeneration 使用 /connectionstring 選項中指定的資料庫連接資訊,並產生 .csdl、.ssdl、.msl、物件層和檢視表檔案。

這個選項需要 /connectionstring 引數以及 /project 引數或是 /outssdl/outcsdl/outmsdl/outobjectlayer/outviews/namespace/entitycontainer 其中一個引數。
/mode:FromSSDLGeneration 從指定的 .ssdl 檔案產生 .csdl 與 .msl 檔案、原始程式碼和檢視表。

這個選項需要 /inssdl 引數及 /project 引數或 /outcsdl/outmsl/outobjectlayer/outviews/namespace,/entitycontainer 引數。
/mode:EntityClassGeneration 建立原始程式碼檔案,其中包含從 .csdl 檔案產生的類別。

這個選項需要 /incsdl 引數及 /project 引數或 /outobjectlayer 引數。 /language 引數是選擇性的。
/mode:ViewGeneration 建立原始程式碼檔案,其中包含從 .csdl、.ssdl 和 .msl 檔案產生的檢視表。

這個選項需要 /inssdl/incsdl/inmsl,/project/outviews 引數。 /language 引數是選擇性的。

選項。

選項 描述
/p[roject]:<string> 指定要使用的專案名稱。 專案名稱會當成命名空間 (Namespace) 設定的預設值、模型和對應檔案的名稱、物件來源檔案的名稱和檢視表產生來源檔案的名稱。 實體容器名稱已設為 <project>Context。
/prov[ider]:<string> 要用來產生儲存體模型 (.ssdl) 檔案的 .NET Framework 資料提供者名稱。 預設提供者為 .NET Framework Data Provider for SQL Server (System.Data.SqlClient)。
/c[onnectionstring]:<連接字串> 指定用來連接至資料來源的字串。
/incsdl:<file> 指定 .csdl 檔案或 .csdl 檔案所在的目錄。 這個引數可多次指定,因此您能指定數個目錄或 .csdl 檔案。 當概念模型被分割成數個檔案後,指定多個目錄會有助於產生類別 (/mode:EntityClassGeneration) 或檢視表 (/mode:ViewGeneration), 而這也有助於驗證多個模型 (/mode:ValidateArtifacts)。
/refcsdl:<file> 指定用於解析來源 .csdl 檔案中任何參考的其他 .csdl 檔案 (來源 .csdl 檔案是由 /incsdl 選項所指定的檔案)。 /refcsdl 檔案包含來源 .csdl 檔案相依的類型。 這個引數可多次指定。
/inmsl:<file> 指定 .msl 檔案或 .msl 檔案所在的目錄。 這個引數可多次指定,因此您能指定數個目錄或 .msl 檔案。 當概念模型被分割成數個檔案後,指定多個目錄會有助於產生檢視表 (/mode:ViewGeneration), 而這也有助於驗證多個模型 (/mode:ValidateArtifacts)。
/inssdl:<file> 指定 .ssdl 檔案或 .ssdl 檔案所在的目錄。 這個引數可多次指定,因此您能指定數個目錄或 .ssdl 檔案。 這有助於驗證多個模型 ((/mode:ValidateArtifacts))。
/outcsdl:<file> 指定將建立的 .csdl 檔案名稱。
/outmsl:<file> 指定將建立的 .msl 檔案名稱。
/outssdl:<file> 指定將建立的 .ssdl 檔案名稱。
/outobjectlayer:<file> 指定原始程式碼檔案,其中包含從 .csdl 檔案產生的物件。
/outviews:<file> 指定原始程式碼檔案,其中包含已產生的檢視表。
/language:[VB|CSharp] 指定所產生之原始程式碼檔案的語言。 預設語言為 C#。
/namespace:<string> 指定要使用的模型命名空間。 執行 /mode:FullGeneration/mode:FromSSDLGeneration 時會在 .csdl 檔案中設定命名空間。 執行 /mode:EntityClassGeneration 時不會使用命名空間。
/entitycontainer:<string> 指定要套用到產生的模型和對應檔案中 <EntityContainer> 項目的名稱。
/pl[uralize] 將英語的單數和複數規則套用到概念模型中的 EntityEntitySetNavigationProperty 名稱。 這個選項會執行下列動作:

- 單數化所有 EntityType 名稱。
- 複數化所有 EntitySet 名稱。
- 針對每個在一個實體內傳回大部分的 NavigationProperty,單數化其名稱。
- 針對每個在多於一個實體內傳回的 NavigationProperty,複數化其名稱。
/SuppressForeignKeyProperties or /nofk 防止外部索引鍵資料行公開為概念模型中實體類型上的純量屬性。
/help? 顯示工具的命令語法和選項。
/nologo 隱藏著作權訊息。
/targetversion:<string> 用於編譯產生的程式碼的 .NET Framework 版本。 支援的版本為 4 和 4.5。 預設為 4。

本節內容

如何:使用 EdmGen.exe 產生模型和對應檔

如何:使用 EdmGen.exe 產生物件層程式碼

如何:使用 EdmGen.exe 驗證模型和對應檔

另請參閱