Élément InsertFunction (MSL)

Dans le langage MSL (Mapping Specification Language), l'élément InsertFunction mappe la fonction d'insertion d'un type d'entité ou d'une association du modèle conceptuel à une procédure stockée de la base de données sous-jacente.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).

Notes

Si vous ne mappez pas les trois opérations d'insertion, de mise à jour ou de suppression d'un type d'entité aux procédures stockées, les opérations non mappées échouent au moment de l'exécution et une exception UpdateException est levée.

L'élément InsertFunction peut être un enfant de l'élément ModificationFunctionMapping et être appliqué à l'élément EntityTypeMapping ou à l'élément AssociationSetMapping.

Application d'InsertFunction à EntityTypeMapping

Lorsqu'il est appliqué à l'élément EntityTypeMapping, l'élément InsertFunction mappe la fonction d'insertion d'un type d'entité du modèle conceptuel à une procédure stockée.

L'élément InsertFunction peut avoir les éléments enfants suivants lorsqu'il est appliqué à un élément EntityTypeMapping :

Attributs applicables

Le tableau suivant décrit les attributs qui peuvent s'appliquer à l'élément InsertFunction lorsqu'il est appliqué à un élément EntityTypeMapping.

Nom d'attribut

Requis

Valeur

FunctionName

Oui

Nom qualifié par un espace de noms de la procédure stockée à laquelle la fonction d'insertion est mappée.La procédure stockée doit être déclarée dans le modèle de stockage.

RowsAffectedParameter

Non

Nom du paramètre de sortie qui retourne le nombre de lignes affectées.

Exemple

L'exemple suivant est basé sur le modèle School et présente l'élément InsertFunction utilisé pour mapper la fonction d'insertion du type d'entité Person à la procédure stockée InsertPerson.La procédure stockée InsertPerson est déclarée dans le modèle de stockage.

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

Application d'InsertFunction à AssociationSetMapping

Lorsqu'il est appliqué à l'élément AssociationSetMapping, l'élément InsertFunction mappe la fonction d'insertion d'une association du modèle conceptuel à une procédure stockée.

L'élément InsertFunction peut avoir les éléments enfants suivants lorsqu'il est appliqué à l'élément AssociationSetMapping :

Attributs applicables

Le tableau suivant décrit les attributs qui peuvent s'appliquer à l'élément InsertFunction lorsqu'il est appliqué à l'élément AssociationSetMapping.

Nom d'attribut

Requis

Valeur

FunctionName

Oui

Nom qualifié par un espace de noms de la procédure stockée à laquelle la fonction d'insertion est mappée.La procédure stockée doit être déclarée dans le modèle de stockage.

RowsAffectedParameter

Non

Nom du paramètre de sortie qui retourne le nombre de lignes affectées.

Exemple

L'exemple suivant est basé sur le modèle School et présente l'élément InsertFunction utilisé pour mapper la fonction d'insertion de l'association CourseInstructor à la procédure stockée InsertCourseInstructor.La procédure stockée InsertCourseInstructor est déclarée 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>
<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