Élément DeleteFunction (MSL)
Dans le langage MSL (Mapping Specification Language), l'élément DeleteFunction mappe la fonction de suppression 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).
Remarque : |
---|
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. |
Application de DeleteFunction à EntityTypeMapping
Lorsqu'il est appliqué à l'élément EntityTypeMapping, l'élément DeleteFunction mappe la fonction de suppression d'un type d'entité du modèle conceptuel à une procédure stockée.
L'élément DeleteFunction 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) ;
ScalarProperty (zéro, un ou plusieurs éléments).
Attributs applicables
Le tableau suivant décrit les attributs qui peuvent s'appliquer à l'élément DeleteFunction 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 de suppression 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 DeleteFunction mappant la fonction de suppression du type d'entité Person à la procédure stockée DeletePerson. La procédure stockée DeletePerson est déclarée 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>
Application de DeleteFunction à AssociationSetMapping
Lorsqu'il est appliqué à l'élément AssociationSetMapping, l'élément DeleteFunction mappe la fonction de suppression d'une association du modèle conceptuel à une procédure stockée.
L'élément DeleteFunction 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 DeleteFunction 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 de suppression 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 DeleteFunction utilisé pour mapper la fonction de suppression de l'association CourseInstructor à la procédure stockée DeleteCourseInstructor. La procédure stockée DeleteCourseInstructor 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>
Voir aussi
Autres ressources
Spécifications CSDL, SSDL et MSL
Modélisation et mappage (Entity Framework)