É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 :
AssociationEnd (zéro, un ou plusieurs éléments) ;
ComplexProperty (zéro, un ou plusieurs éléments) ;
ResultBinding (zéro ou un élément) ;
ScalarProperty (zéro, un ou plusieurs éléments).
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>