Share via


Mappingspezifikation (MSL)

In Entitätsdatenmodell (EDM) wird für die Mappingspezifikation die Mapping-Spezifikationssprache (MSL) verwendet, um die in der konzeptionellen Schemadefinitionssprache (CSDL) deklarierten Typen mit Datenbankmetadaten zu verbinden, mit denen Daten für Anwendungen dauerhaft gespeichert werden, für die das definierte Objektmodell verwendet wird.

Die im CSDL-Schema deklarierten NamespaceName und EntityContainerName identifizieren Entitäten und Zuordnungen, die im konzeptionellen Schema enthalten sind. Mithilfe von MSL-Syntax werden sie in der SSDL-Datei Speichermetadaten zugeordnet.

Im folgenden MSL-Segment finden Sie die Syntax, mit der der Entitätencontainer HumanResources entsprechend der Definition im CSDL-Schema dem entsprechenden Entitätencontainer HumanResources entsprechend der Definition im SSDL-Schema zugeordnet wird, das die Zieldatenbank beschreibt.

Die CdmEntityContainer und StorageEntityContainer zugewiesenen Entitätencontainernamen werden nicht vom Namespace-Namen des Schemas qualifiziert, in dem sie deklariert werden. Obwohl die Entitätencontainer innerhalb der Schemas deklariert werden, sind sie separat und unabhängig von den Schemas.

<?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">

In Entitätencontainern enthaltene Entitätenmengen werden mithilfe einer Syntax zugeordnet, die der für Entitätencontainer verwendeten ähnelt. Mithilfe der folgenden Zuordnung wird die Entitätenmenge mit dem Namen AdventureWorksHRModel.Department aus dem konzeptionellen Schema einer Tabelle mit dem Namen Department in den Speichermetadaten verbunden. Das EntitySetMapping-Element beinhaltet ein Name-Attribut, das sowohl im konzeptionellen Schema als auch in den Speichermetadaten die Entitätenmenge Department identifiziert.

Das EntityTypeMapping-Element beinhaltet ein TypeName-Attribut für die Department-Entität im CSDL-Schema mit einem entsprechenden MappingFragment und einem TableName-Attribut für die Tabelle Department in der Datenbank.

Schließlich entsprechen die ScalarProperty-Elemente dem Name einer Entitätseigenschaft im CSDL-Schema und dem ColumnName in der Tabelle Department im SSDL-Schema.

    <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-Schemas befinden sich im XML-Namespace urn:schemas-microsoft-com:windows:storage:mapping:CS.

EntitySetMapping-Element (MSL)

EntityContainerMapping-Element (MSL)

EntitySetMapping-Element (MSL)

AssociationSetMapping-Element (MSL)

Siehe auch

Konzepte

Konzeptionelles Schema (CSDL)
Speichermetadatenschema (SSDL)
Das vollständige AdventureWorks-Modell (EDM)
Datenmodellierung im Entity Framework