Partager via


Élément ScalarProperty (MSL)

Dans le langage MSL (Mapping Specification Language), l'élément ScalarProperty mappe une propriété d'un type d'entité de modèle conceptuel, d'un type complexe ou d'une association à une colonne de table ou un paramètre de procédure stockée de la base de données sous-jacente.

Bb399167.note(fr-fr,VS.100).gifRemarque :
Les procédures stockées auxquelles des fonctions de modification sont mappées doivent être déclarées dans le modèle de stockage.Pour plus d'informations, consultez Élément Function (SSDL).

L'élément ScalarProperty peut être un enfant des éléments suivants :

En qualité d'enfant de l'élément MappingFragment, ComplexProperty ou EndProperty, l'élément ScalarProperty mappe une propriété du modèle conceptuel à une colonne de la base de données. En tant qu'enfant de l'élément InsertFunction, UpdateFunction ou DeleteFunction , l'élément ScalarProperty mappe une propriété du modèle conceptuel à un paramètre de procédure stockée.

L'élément ScalarProperty ne peut pas avoir d'éléments enfants.

Attributs applicables

Les attributs qui s'appliquent à l'élément ScalarProperty varient en fonction du rôle de l'élément.

Le tableau suivant décrit les attributs qui sont applicables lorsque l'élément ScalarProperty est utilisé pour mapper une propriété de modèle conceptuel à une colonne de la base de données :

Nom d'attribut Requis Valeur

Name

Oui

Nom de la propriété de modèle conceptuel mappée.

ColumnName

Oui

Nom de la colonne de table mappée.

Le tableau suivant décrit les attributs qui sont applicables à l'élément ScalarProperty lorsqu'il est utilisé pour mapper une propriété de modèle conceptuel à un paramètre de procédure stockée :

Nom d'attribut Requis Valeur

Name

Oui

Nom de la propriété de modèle conceptuel mappée.

ParameterName

Oui

Nom du paramètre mappé.

Version

Non

Current ou Original selon que la valeur actuelle ou la valeur d'origine de la propriété doit être utilisée pour les contrôles d'accès concurrentiel.

Exemple

L'exemple ci-dessous illustre l'utilisation de l'élément ScalarProperty selon deux façons différentes :

  • pour mapper les propriétés du type d'entité Person aux colonnes de la table Person ;

  • pour mapper les propriétés du type d'entité Person aux paramètres de la procédure stockée UpdatePerson. Les procédures stockées sont déclarées dans le modèle de stockage.

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

Exemple

L'exemple suivant illustre l'utilisation de l'élément ScalarProperty pour mapper les fonctions d'insertion et de suppression d'une association de modèle conceptuel aux procédures stockées de la base de données. Les procédures stockées sont déclarées dans le modèle de stockage.

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

Voir aussi

Autres ressources

Spécifications CSDL, SSDL et MSL
Modélisation et mappage (Entity Framework)