映射规范 (MSL)

在 实体数据模型 (EDM) 中,映射规范使用映射规范语言 (MSL) 将概念性架构定义语言 (CSDL) 中声明的类型连接到保存使用所定义对象模型的应用程序的数据的数据库元数据。

CSDL 架构中声明的 NamespaceNameEntityContainerName 标识概念性架构所包含的实体和关联。MSL 语法将它们映射到存储架构定义语言 (SSDL) 文件中的存储元数据。

下面的 MSL 段演示的语法用于将 CSDL 架构中定义的实体容器 HumanResources 映射到 SSDL 架构中定义的相应实体容器 HumanResources,同时对目标数据库进行了描述。

分配给 CdmEntityContainerStorageEntityContainer 的实体容器的名称不受在其中声明它们的架构的 Namespace 名称限定。虽然实体容器是在架构内声明的,但它们是单独的并且独立于架构。

<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S" 
    xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">

  <EntityContainerMapping CdmEntityContainer="HumanResources"
StorageEntityContainer="HumanResources">

实体容器包含的实体集使用与用于实体容器相似的语法进行映射。下面的映射从概念性架构中将名为 AdventureWorksHRModel.Department 的实体集连接到存储元数据中名为 Department 的表。EntitySetMapping 元素包含一个标识概念性架构和存储元数据中的 Department 实体集的 Name 属性。

EntityTypeMapping 元素包含 CSDL 架构中的 Department 实体的 TypeName 属性,以及数据库中的 Department 表对应的 MappingFragmentTableName 属性。

最后,ScalarProperty 元素对应于 CSDL 架构中的实体的属性 Name,对应于 SSDL 架构中的 Department 表的 ColumnName

    <EntitySetMapping Name="Department">
      <EntityTypeMapping
                   TypeName="AdventureWorksHRModel.Department">
        <MappingFragment TableName="Department">
          <ScalarProperty Name="DepartmentID"
                               ColumnName="DepartmentID" />
          <ScalarProperty Name="Name" ColumnName="Name" />
          <ScalarProperty Name="GroupName"
                                    ColumnName="GroupName" />
          <ScalarProperty Name="ModifiedDate"
                                 ColumnName="ModifiedDate" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>

Xmlns

MSL 架构位于 XML 命名空间:urn:schemas-microsoft-com:windows:storage:mapping:CS

EntitySetMapping 元素 (MSL)

EntityContainerMapping 元素 (MSL)

EntitySetMapping 元素 (MSL)

AssociationSetMapping 元素 (MSL)

另请参见

概念

概念架构 (CSDL)
存储元数据架构 (SSDL)
AdventureWorks 完整模型 (EDM)
实体框架中的数据建模