.edmx 文件概述(实体框架)

.edmx 文件是一个 XML 文件,它用于定义概念模型、存储模型和这些模型之间的映射。 .edmx 文件还包含 ADO.NET 实体数据模型设计器(实体设计器)用于以图形方式呈现模型的信息。 创建 .edmx 文件的建议做法是使用实体数据模型向导。 有关更多信息,请参见如何:创建新的 .edmx 文件(实体数据模型工具)

使用实体设计器修改模型以及使用模型更新向导基于对基础数据库的更改更新模型时,会更改 .edmx 文件。 有关更多信息,请参见模型更新向导(实体数据模型工具)。 在有些情况下,您可能必须手动编辑 .edmx 文件。 有关更多信息,请参见手动编辑 .edmx 文件(实体框架)

默认情况下,.edmx 文件使用实体设计器打开。 不过,可以按照下列步骤使用 XML 编辑器打开 .edmx 文件:

  1. 确保项目在 Visual Studio 中打开。

  2. “解决方案资源管理器”中右击 .edmx 文件,然后选择“打开方式...”

  3. 选择“XML 编辑器”,然后单击“确定”

.edmx 文件内容

以下是对 .edmx 文件内容的高级分解。 有关详细信息,请参见 Visual Studio XML 目录中的 .edmx 架构。

Cc982042.note(zh-cn,VS.100).gif注意:
针对 .NET Framework 4 版的应用程序架构在 Microsoft.Data.Entity.Design.Edmx_2.xsd 文件中定义。针对 .NET Framework 3.5 SP1 版的应用程序架构在 Microsoft.Data.Entity.Design.Edmx_1.xsd 文件中定义。

运行时内容 (edmx:Runtime)

本节包含用于生成实体框架应用程序的模型和映射文件的信息。 有关更多信息,请参见下面的“.edmx 文件属性”一节中的 Build Action 属性。

Cc982042.note(zh-cn,VS.100).gif注意:
.edmx 文件会自动添加到引用 ADO.NET Data Services 服务的应用程序。在这种情况下,.edmx 文件包含 edmx:DataServices 节点,而不包含 edmx:Runtime 节点。有关更多信息,请参见 ADO.NET Data Services Framework

  • 存储模型内容 (edmx:StorageModels):本节介绍了目标数据库架构且使用存储架构定义语言 (SSDL) 编写。 有关更多信息,请参见 SSDL SpecificationEntityContainer Element (SSDL)

  • 概念模型内容 (edmx:ConceptualModels):本节定义了应用程序域中的实体类型、复杂类型、关联、实体容器、实体集以及关联集。 本节使用概念存储定义语言 (CSDL) 编写。 有关更多信息,请参见 CSDL SpecificationEntityContainer Element (CSDL)

  • 映射内容 (edmx:Mappings):本节介绍了概念模型与目标数据库之间的映射,并且使用映射规范语言 (MSL) 编写。 有关更多信息,请参见 MSL Specification

设计器内容 (edmx:Designer)

本节包含实体设计器用于以图形方式呈现概念模型以及定义某些概念模型和设计时属性的信息。

Cc982042.note(zh-cn,VS.100).gif注意:
.edmx 文件会自动添加到引用 ADO.NET Data Services 服务的应用程序。在这种情况下,.edmx 文件不包含 edmx:Designer 节点且不能使用实体设计器进行查看。有关更多信息,请参见 ADO.NET Data Services Framework

  • 连接内容 (edmx:Connection):本节介绍了影响连接字符串的概念模型属性。 目前,在本节中可设置的唯一属性为 MetadataArtifactProcessing 属性。 有关更多信息,请参见Connection Strings

  • 选项内容 (edmx:Options):本节介绍了可选的概念模型属性。 目前,在此仅设置 ValidateOnBuild 属性。

  • 关系图 (edmx:Diagrams):本节包含实体设计器要用来以图形形式呈现概念模型的信息。

概念模型属性

概念模型的属性是在 .edmx 文件中定义的。 下表介绍在 Visual Studio“属性”窗口中可以看到的概念模型属性:

Cc982042.note(zh-cn,VS.100).gif注意:
概念模型属性与 .edmx 文件本身的属性不同。有关更多信息,请参见下面的 .edmx File Properties一节。

  • Connection String
    实体客户端连接字符串。 显示的连接字符串取自项目的 App.config 或 Web.Config 文件且具有的名称与“实体容器”名称相同。 有关更多信息,请参见Connection Strings
  • Database Schema Name
    从概念模型创建数据库时生成的数据库的架构名称。
  • Entity Container Access
    控制生成的对象上下文类是“公共”还是“内部”
  • Metadata Artifact Processing
    控制模型和映射文件(.csdl、.ssdl 和 .msl 文件)是嵌入在输出程序集中还是复制到输出目录。
  • Pluralize New Objects
    控制是否以复数形式表示新实体集名称和导航属性名。
  • Transform Related Text Templates On Save
    文本模板通过将 .edmx 文件名插入到该文本模板与 .edmx 文件相关。 有关更多信息,请参见如何:自定义对象层代码生成(实体数据模型设计器)。 如果 Transform Related Text Templates On Save 属性设置为 True,则在保存 .edmx 文件时将处理与 .edmx 文件相关的所有文本模板。 如果该属性设置为 False,则将不处理任何相关的文本模板。
  • Validate On Build
    控制在生成项目时是否验证模型。

.edmx 文件属性

Build ActionCustom ToolCustom Tool Namespace 属性是 .edmx 文件的属性。 有关 .edmx 文件的 Copy to Output DirectoryFile Name 属性的更多信息,请参见 Visual Studio 文档中的 File Properties(文件属性)。

Cc982042.note(zh-cn,VS.100).gif注意:
Copy to Output Directory 文件属性不用于指定模型和映射文件应复制到输出目录,而是使用概念模型的 Metadata Artifact Processing 属性。

若要在 Visual Studio 中查看和编辑 .edmx 文件属性,请按照下列步骤操作:

  1. 在 Visual Studio 中打开一个包含 .edmx 文件的项目。

  2. “解决方案资源管理器”中右击 .edmx 文件,然后选择“属性”

    可在“属性”窗口看到文件属性。

下表介绍了 .edmx 文件的 Build ActionCustom ToolCustom Tool Namespace 属性:

  • Build Action
    如果此属性设置为 EntityDeploy(默认值),则在执行生成时会根据 .edmx 文件创建三个文件:概念模型文件 (.csdl)、存储模型文件 (.ssdl) 和映射文件 (.msl)。 这些文件会作为资源嵌入或复制到输出目录,具体取决于模型的 Metadata Artifact Processing 属性的值。 有关更多信息,请参见如何:编辑概念模型属性(实体数据模型工具)。 有关 Build Action 属性的其他值的信息,请参见 File Properties(文件属性)。
  • Custom Tool
    如果此属性设置为 EntityModelCodeGenerator (默认值)且“代码生成策略”设置为“默认值”,则实体设计器会创建一个源代码文件,该文件包含从 .edmx 文件中定义的概念模型生成的类。 有关更多信息,请参见生成的代码概述(实体数据模型设计器)

另请参见

概念

生成的代码概述(实体数据模型设计器)

其他资源

CSDL Specification