Elemento ScalarProperty (MSL)
L'elemento ScalarProperty in MSL (Mapping Specification Language) consente di eseguire il mapping di una proprietà su un tipo di entità del modello concettuale, un tipo complesso o un'associazione a una colonna della tabella o parametro della stored procedure nel database sottostante.
Nota
Le stored procedure a cui le funzioni di modifica sono mappate devono essere dichiarate nel modello di archiviazione.Per ulteriori informazioni, vedere Elemento Function (SSDL).
L'elemento ScalarProperty può essere un figlio dei seguenti elementi:
Come figlio dell'elemento MappingFragment, ComplexProperty o EndProperty, l'elemento ScalarProperty esegue il mapping di una proprietà nel modello concettuale a una colonna nel database.Come figlio dell'elemento InsertFunction, UpdateFunction o DeleteFunction , l'elemento ScalarProperty esegue il mapping di una proprietà nel modello concettuale a un parametro della stored procedure.
L'elemento ScalarProperty non può contenere elementi figlio.
Attributi applicabili
Gli attributi che vengono applicati all'elemento ScalarProperty differiscono a seconda del ruolo dell'elemento.
Nella tabella seguente vengono descritti gli attributi che sono applicabili quando l'elemento ScalarProperty viene utilizzato per eseguire il mapping di una proprietà del modello concettuale a una colonna nel database:
Nome attributo |
È obbligatorio |
Valore |
---|---|---|
Name |
Sì |
Nome della proprietà del modello concettuale di cui è in corso il mapping. |
ColumnName |
Sì |
Nome della colonna della tabella di cui è in corso il mapping. |
Nella tabella seguente vengono descritti gli attributi che sono applicabili all'elemento ScalarProperty quando viene utilizzato per eseguire il mapping di una proprietà del modello concettuale a un parametro della stored procedure:
Nome attributo |
È obbligatorio |
Valore |
---|---|---|
Name |
Sì |
Nome della proprietà del modello concettuale di cui è in corso il mapping. |
ParameterName |
Sì |
Nome del parametro di cui è in corso il mapping. |
Version |
No |
Current o Original a seconda se il valore corrente o il valore originale della proprietà deve essere utilizzato o meno per i controlli della concorrenza. |
Esempio
Nell'esempio riportato di seguito vengono mostrati due utilizzi dell'elemento ScalarProperty:
Per eseguire il mapping delle proprietà del tipo di entità Person alle colonne della tabella Person.
Per eseguire il mapping delle proprietà del tipo di entità Person ai parametri della stored procedure UpdatePerson.Le stored procedure vengono dichiarate nel modello di archiviazione.
<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>
<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>
Esempio
Nell'esempio successivo viene mostrato l'elemento ScalarProperty utilizzato per eseguire il mapping delle funzioni Insert e Delete di un'associazione del modello concettuale alle stored procedure nel database.Le stored procedure vengono dichiarate nel modello di archiviazione.
<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>
<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>