ScalarProperty-Element (MSL)
In MSL (Mapping Specification Language) ordnet das ScalarProperty-Element eine Eigenschaft eines Entitätstyps des konzeptionellen Modells, eines komplexen Typs oder einer Zuordnung einer Tabellenspalte oder einem Parameter einer gespeicherten Prozedur in der zugrunde liegenden Datenbank zu.
Hinweis: |
---|
Gespeicherte Prozeduren, denen Änderungsfunktionen zugeordnet werden, müssen im Speichermodell deklariert werden.Weitere Informationen finden Sie unter Function-Element (SSDL). |
Das ScalarProperty-Element kann ein untergeordnetes Element der folgenden Elemente sein:
Als untergeordnetes Element des Elements MappingFragment, ComplexProperty oder EndProperty ordnet das ScalarProperty-Element einer Spalte in der Datenbank eine Eigenschaft im konzeptionellen Modell zu. Als untergeordnetes Element des Elements InsertFunction, UpdateFunction oder DeleteFunction ordnet das ScalarProperty-Element eine Eigenschaft im konzeptionellen Modell einem Parameter einer gespeicherten Prozedur zu.
Das ScalarProperty-Element kann keine untergeordneten Elemente besitzen.
Anwendbare Attribute
Welche Attribute auf das ScalarProperty-Element anwendbar sind, hängt von der Rolle des Elements ab.
In der folgenden Tabelle werden die Attribute beschrieben, die anwendbar sind, wenn das ScalarProperty-Element verwendet wird, um eine Eigenschaft des konzeptionellen Modells einer Spalte in der Datenbank zuzuordnen:
Attributname | Ist erforderlich | Wert |
---|---|---|
Name |
Ja |
Der Name der Eigenschaft im konzeptionellen Modell, die zugeordnet wird. |
ColumnName |
Ja |
Der Name der Tabellenspalte, die zugeordnet wird. |
In der folgenden Tabelle werden die Attribute beschrieben, die auf das ScalarProperty-Element anwendbar sind, wenn es verwendet wird, um einem Parameter einer gespeicherten Prozedur eine Eigenschaft im konzeptionellen Modell zuzuordnen:
Attributname | Ist erforderlich | Wert |
---|---|---|
Name |
Ja |
Der Name der Eigenschaft im konzeptionellen Modell, die zugeordnet wird. |
ParameterName |
Ja |
Der Name des Parameters, der zugeordnet wird. |
Version |
Nein |
Current oder Original, abhängig von, ob der aktuelle Wert oder der ursprüngliche Wert der Eigenschaft für Parallelitätsüberprüfungen verwendet werden soll. |
Beispiel
Im folgenden Beispiel wird ein ScalarProperty-Element auf zweierlei Weise verwendet:
Um die Eigenschaften des Person-Entitätstyps den Spalten der Person-Tabelle zuzuordnen.
Um den Parametern der gespeicherten Prozedur UpdatePerson die Eigenschaften des Person-Entitätstyps zuzuordnen. Die gespeicherten Prozeduren werden im Speichermodell deklariert.
<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>
<InsertFunction FunctionName="SchoolModel.Store.InsertPerson">
<ScalarProperty Name="EnrollmentDate"
ParameterName="EnrollmentDate" />
<ScalarProperty Name="HireDate" ParameterName="HireDate" />
<ScalarProperty Name="FirstName" ParameterName="FirstName" />
<ScalarProperty Name="LastName" ParameterName="LastName" />
<ResultBinding Name="PersonID" ColumnName="NewPersonID" />
</InsertFunction>
<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>
<DeleteFunction FunctionName="SchoolModel.Store.DeletePerson">
<ScalarProperty Name="PersonID" ParameterName="PersonID" />
</DeleteFunction>
</ModificationFunctionMapping>
</EntityTypeMapping>
</EntitySetMapping>
Beispiel
Im nächsten Beispiel wird das ScalarProperty-Element veranschaulicht, das verwendet wird, um die Einfüge- und Löschfunktion einer Zuordnung in einem konzeptionellen Modell gespeicherten Prozeduren in der Datenbank zuzuordnen. Die gespeicherten Prozeduren werden im Speichermodell deklariert.
<AssociationSetMapping Name="CourseInstructor"
TypeName="SchoolModel.CourseInstructor"
StoreEntitySet="CourseInstructor">
<EndProperty Name="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
</EndProperty>
<EndProperty Name="Course">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
</EndProperty>
<ModificationFunctionMapping>
<InsertFunction FunctionName="SchoolModel.Store.InsertCourseInstructor" >
<EndProperty Name="Course">
<ScalarProperty Name="CourseID" ParameterName="courseId"/>
</EndProperty>
<EndProperty Name="Person">
<ScalarProperty Name="PersonID" ParameterName="instructorId"/>
</EndProperty>
</InsertFunction>
<DeleteFunction FunctionName="SchoolModel.Store.DeleteCourseInstructor">
<EndProperty Name="Course">
<ScalarProperty Name="CourseID" ParameterName="courseId"/>
</EndProperty>
<EndProperty Name="Person">
<ScalarProperty Name="PersonID" ParameterName="instructorId"/>
</EndProperty>
</DeleteFunction>
</ModificationFunctionMapping>
</AssociationSetMapping>
Siehe auch
Weitere Ressourcen
CSDL-, SSDL- und MSL-Spezifikationen
Modellieren und Zuordnen (Entity Framework)