EntityTypeMapping-Element (MSL)
In MSL (Mapping Specification Language) definiert das EntityTypeMapping-Element die Zuordnung von einem Entitätstyp im konzeptionellen Modell zu den Tabellen oder Ansichten in der zugrunde liegenden Datenbank. Informationen zu den Entitätstypen des konzeptionellen Modells und den zugrunde liegenden Datenbanktabellen oder Ansichten finden Sie in EntityType-Element (CSDL) und EntitySet-Element (SSDL). Der Entitätstyp des konzeptionellen Modells, der zugeordnet wird, wird durch das TypeName-Attribut des EntityTypeMapping-Elements angegeben. Die Tabelle oder die Ansicht, die zugeordnet wird, wird durch das StoreEntitySet-Attribut des untergeordneten MappingFragment-Elements angegeben.
Das untergeordnete ModificationFunctionMapping-Element kann verwendet werden, um gespeicherten Prozeduren in der Datenbank die Einfüge-, Aktualisierungs- oder Löschfunktionen von Entitätstypen zuzuordnen.
Das EntityTypeMapping-Element kann die folgenden untergeordneten Elemente aufweisen:
MappingFragment (null oder mehr)
ModificationFunctionMapping (kein (null) oder ein Element)
Hinweis: |
---|
Das MappingFragment-Element und das ModificationFunctionMapping-Element können nicht gleichzeitig untergeordnete Elemente des EntityTypeMapping-Elements sein. |
Hinweis: |
---|
Das ScalarProperty-Element und das Condition-Element können nur untergeordnete Elemente des EntityTypeMapping-Elements sein, wenn es innerhalb eines FunctionImportMapping-Elements verwendet wird. |
Anwendbare Attribute
In der folgenden Tabelle werden die Attribute beschrieben, die auf das EntityTypeMapping-Element angewendet werden können.
Attributname | Ist erforderlich | Wert |
---|---|---|
TypeName |
Ja |
Der mit einem Namespace qualifizierte Name des Entitätstyps des konzeptionellen Modells, der zugeordnet wird. Wenn der Typ abstrakt oder ein abgeleiteter Typ ist, muss der Wert |
Beispiel
Im folgenden Beispiel wird ein EntitySetMapping-Element mit zwei untergeordneten EntityTypeMapping-Elementen veranschaulicht. Im ersten EntityTypeMapping-Element wird der Tabelle Person der SchoolModel.Person-Entitätstyp zugeordnet. Im zweiten EntityTypeMapping-Element wird der gespeicherten Prozedur UpdatePerson in der Datenbank die Aktualisierungsfunktion des SchoolModel.Person-Typs zugeordnet.
<EntitySetMapping Name="People">
<EntityTypeMapping TypeName="SchoolModel.Person">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="LastName" ColumnName="LastName" />
<ScalarProperty Name="FirstName" ColumnName="FirstName" />
<ScalarProperty Name="HireDate" ColumnName="HireDate" />
<ScalarProperty Name="EnrollmentDate" ColumnName="EnrollmentDate" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="SchoolModel.Person">
<ModificationFunctionMapping>
<UpdateFunction FunctionName="SchoolModel.Store.UpdatePerson">
<ScalarProperty Name="EnrollmentDate" ParameterName="EnrollmentDate"
Version="Current" />
<ScalarProperty Name="HireDate" ParameterName="HireDate"
Version="Current" />
<ScalarProperty Name="FirstName" ParameterName="FirstName"
Version="Current" />
<ScalarProperty Name="LastName" ParameterName="LastName"
Version="Current" />
<ScalarProperty Name="PersonID" ParameterName="PersonID"
Version="Current" />
</UpdateFunction>
</ModificationFunctionMapping>
</EntityTypeMapping>
</EntitySetMapping>
Beispiel
Im nächsten Beispiel wird die Zuordnung einer Typhierarchie, in der der Stammtyp abstrakt ist, veranschaulicht. Beachten Sie die Verwendung der IsOfType
-Syntax für die TypeName-Attribute.
<EntitySetMapping Name="People">
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Person)">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="FirstName" ColumnName="FirstName" />
<ScalarProperty Name="LastName" ColumnName="LastName" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Instructor)">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="HireDate" ColumnName="HireDate" />
<Condition ColumnName="HireDate" IsNull="false" />
<Condition ColumnName="EnrollmentDate" IsNull="true" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Student)">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="EnrollmentDate"
ColumnName="EnrollmentDate" />
<Condition ColumnName="EnrollmentDate" IsNull="false" />
<Condition ColumnName="HireDate" IsNull="true" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
Siehe auch
Konzepte
CSDL-Spezifikation
SSDL-Spezifikation