EdmGen.exe 是用来处理 实体数据模型 (EDM) 的命令行工具。使用 EdmGen.exe 工具可以执行以下任务:
- 通过使用特定于数据源的 .NET Framework 数据提供程序连接到数据源,生成概念模型 (.csdl)、存储模型 (.ssdl) 和 EDM 所用的映射 (.msl) 文件。有关更多信息,请参见如何:使用 EdmGen.exe 生成实体数据模型(实体框架)。 
- 验证现有模型。有关更多信息,请参见如何:使用 EdmGen.exe 验证实体数据模型。 
- 生成包含从概念模型 (.csdl) 文件生成的对象类的 C# 或 Visual Basic 代码文件。有关更多信息,请参见如何:使用 EdmGen.exe 生成对象模型文件(实体框架)。 
- 生成包含现有模型的预生成视图的 C# 或 Visual Basic 代码文件。有关更多信息,请参见如何:预生成视图以改善查询性能(实体框架)。 
EdmGen.exe 工具安装在 .NET Framework 目录中。在许多情况下,它位于 c:\windows\Microsoft.NET\Framework\v3.5 中。此外,从 Visual Studio 命令提示也可以访问 EdmGen.exe 工具(单击**“开始”,依次指向“所有程序”、“Microsoft Visual Studio 2008”、“Visual Studio 工具”,然后单击“Visual Studio 2008 命令提示”**)。
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]:<字符串> | 指定要使用的项目名称。项目名称用作命名空间设置、EDM 文件名、对象源文件名、视图生成源文件名的默认值。实体容器名称设置为 <项目>Context。 | 
| /prov[ider]:<字符串> | 用于生成存储模型 (.ssdl) 文件的 .NET Framework 数据提供程序的名称。默认提供程序是用于 SQL Server 的 .NET Framework 数据提供程序 (System.Data.SqlClient)。 | 
| /c[onnectionstring]:<连接字符串> | 指定用于连接数据源的字符串。 | 
| /incsdl:<文件> | 指定 .csdl 文件或 .csdl 文件所在的目录。此参数可多次指定,这样可以指定多个目录或 .csdl 文件。当概念模型跨多个文件拆分时,对于生成类 (/mode:EntityClassGeneration) 或视图 (/mode:ViewGeneration),指定多个目录十分有用。如果希望验证多个模型 (/mode:ValidateArtifacts),这样做也很有用。 | 
| /refcsdl:<文件> | 指定用于解析源 .csdl 文件中的任何引用的其他 .csdl 文件。(源 .csdl 文件是 /incsdl 选项指定的文件)。/refcsdl 文件包含源 .csdl 文件所依赖的类型。此参数可多次指定。 | 
| /inmsl:<文件> | 指定 .msl 文件或 .msl 文件所在的目录。此参数可多次指定,这样可以指定多个目录或 .msl 文件。当概念模型跨多个文件拆分时,对于生成视图 (/mode:ViewGeneration),指定多个目录十分有用。如果希望验证多个模型 (/mode:ValidateArtifacts),这样做也很有用。 | 
| /inssdl:<文件> | 指定 .ssdl 文件或 .ssdl 文件所在的目录。 | 
| /outcsdl:<文件> | 指定将创建的 .csdl 文件的名称。 | 
| /outmsl:<文件> | 指定将创建的 .msl 文件的名称。 | 
| /outssdl:<文件> | 指定将创建的 .ssdl 文件的名称。 | 
| /outobjectlayer:<文件> | 指定包含根据 .csdl 文件生成的对象的源代码文件的名称。 | 
| /outviews:<文件> | 指定包含所生成的视图的源代码文件的名称。 | 
| /language:[VB|CSharp] | 指定生成的源代码文件的语言。默认语言为 C#。 | 
| /namespace:<字符串> | 指定要使用的命名空间。命名空间是在运行 /mode:FullGeneration 或 /mode:FromSSDLGeneration 时在 .csdl 文件中设置的。在运行 /mode:EntityClassGeneration 时不使用该命名空间。 | 
| /entitycontainer:<字符串> | 指定在生成的 EDM 文件中应用于  | 
| /help 或 ? | 显示工具的命令语法和选项。 | 
| /nologo | 禁止显示版权信息。 |