EDM 產生器 (EdmGen.exe)
EdmGen.exe 是用於處理 Entity Framework 模型和對應檔案的命令列工具。 您可以使用 EdmGen.exe 工具執行下列動作:
使用資料來源特定的 .NET Framework 資料提供者連線至資料來源,並產生 Entity Framework 使用的概念模型 (.csdl)、儲存體模型 (.ssdl) 和對應 (.msl) 檔案。 如需詳細資訊,請參閱如何:使用 EdmGen.exe 產生模型和對應檔。
驗證現有模型。 如需詳細資訊,請參閱作法:使用EdmGen.exe 驗證模型和對應檔。
產生 C# 或 Visual Basic 程式碼檔案,其中包含從概念模型 (.csdl) 檔案產生的物件類別 (Class)。 如需詳細資訊,請參閱作法:使用 EdmGen.exe 來產生物件層程式碼。
產生 C# 或 Visual Basic 程式碼檔案,其中包含為現有模型預先產生的檢視表。 如需詳細資訊,請參閱作法:預先產生檢視以改善查詢效能。
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 、 /inmsl /incsdl 、 或 /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] |
將英語的單數和複數規則套用到概念模型中的 Entity 、EntitySet 和 NavigationProperty 名稱。 這個選項會執行下列動作:- 單數化所有 EntityType 名稱。- 複數化所有 EntitySet 名稱。- 針對每個在一個實體內傳回大部分的 NavigationProperty ,單數化其名稱。- 針對每個在多於一個實體內傳回的 NavigationProperty ,複數化其名稱。 |
/SuppressForeignKeyProperties or /nofk |
防止外部索引鍵資料行公開為概念模型中實體類型上的純量屬性。 |
/help 或 ? |
顯示工具的命令語法和選項。 |
/nologo |
隱藏著作權訊息。 |
/targetversion: <string> |
用於編譯產生的程式碼的 .NET Framework 版本。 支援的版本為 4 和 4.5。 預設為 4。 |