Partager via


affecter des procédures stockées pour effectuer des mises à jour, des insertions et des suppressions (Concepteur O/R)

Les procédures stockées peuvent être ajoutées au Concepteur O/R et exécutées comme méthodes DataContext typiques. Elles peuvent également être utilisées pour remplacer le comportement d’exécution de LINQ to SQL par défaut qui effectue des insertions, des mises à jour et des suppressions lorsque les modifications sont enregistrées à partir de classes d’entité dans une base de données (par exemple, lors de l’appel de la méthode SubmitChanges).

Notes

Si votre procédure stockée retourne des valeurs qui doivent être renvoyées au client (par exemple, les valeurs sont calculées dans la procédure stockée), créez des paramètres de sortie dans vos procédures stockées. Si vous ne pouvez pas utiliser de paramètres de sortie, écrivez une implémentation de méthode partielle au lieu de vous fier aux substitutions générées par le Concepteur O/R. Les membres mappés aux valeurs générées par base de données doivent disposer des valeurs appropriées quand les opérations INSERT ou UPDATE se sont correctement achevées. Pour plus d'informations, consultez Responsabilités du développeur en matière de substitution du comportement par défaut.

Remarque

LINQ to SQL gère automatiquement les valeurs générées par la base de données pour les colonnes d'identité (incrément automatique), rowguidcol (identificateur global unique (GUID) généré par la base de données) et horodateur. Les valeurs générées par une base de données dans les autres types de colonne entraînent une valeur null de manière inopinée. Pour renvoyer les valeurs générées par la base de données, vous devez définir manuellement IsDbGenerated sur true et AutoSync sur l’une des valeurs suivantes : AutoSync.Always, AutoSync.OnInsertou AutoSync.OnUpdate.

Configuration du comportement de mise à jour d'une classe d'entité

Par défaut, la logique de mise à jour d'une base de données (insertions, mises à jour et suppressions) avec les modifications apportées aux données dans les classes de l'entité LINQ to SQL est fournie par le runtime LINQ to SQL. Le runtime crée des commandes INSERT, UPDATE et DELETE par défaut basées sur le schéma de la table (la colonne et les informations sur la clé primaire). Si vous ne souhaitez pas utiliser le comportement par défaut, vous pouvez configurer le comportement de mise à jour en affectant des procédures stockées spécifiques pour exécuter les insertions, mises à jour et suppressions nécessaires à la manipulation des données dans votre table. Vous pouvez également le faire lorsque le comportement par défaut n'est pas généré, par exemple lorsque vos classes d'entité mappent aux vues. En outre, vous pouvez substituer le comportement de mise à jour par défaut lorsque la base de données nécessite un accès aux tables à l'aide de procédures stockées.

Notes

Dans cet article, il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains éléments de l’interface utilisateur Visual Studio. Il se peut que vous utilisiez une autre édition de Visual Studio ou d’autres paramètres d’environnement. Pour plus d’informations, consultez Personnaliser l’IDE.

Pour assigner des procédures stockées afin de substituer le comportement par défaut d'une classe d'entité

  1. Ouvrez le fichier LINQ to SQL dans le concepteur. (Double-cliquez sur le fichier .dbml dans l’Explorateur de solutions.)

  2. Dans l’Explorateur de serveurs ou l’Explorateur de bases de données, développez Procédures stockées et localisez les procédures stockées à utiliser pour l’insertion, la mise à jour et/ou la suppression de la classe d’entité.

  3. Faites glisser la procédure stockée vers le Concepteur O/R.

    La procédure stockée est ajoutée au volet de méthodes comme méthode DataContext. Pour plus d’informations, consultez DataContext, méthodes (Concepteur O/R).

  4. Sélectionnez la classe d'entité pour laquelle vous souhaitez utiliser la procédure stockée afin d'effectuer des mises à jour.

  5. Dans la fenêtre Propriétés, sélectionnez la commande à substituer (Insert, Update ou Delete).

  6. Cliquez sur les points de suspension (...) en regard des mots Utiliser le runtime pour ouvrir la boîte de dialogue Configurer le comportement.

  7. Sélectionnez Personnaliser.

  8. Sélectionnez la procédure stockée voulue dans la liste Personnaliser.

  9. Inspectez la liste des Arguments de méthode et des Propriétés de classe pour vérifier que les Arguments de méthode mappent aux Propriétés de classe appropriées. Mappez les arguments de méthode d’origine (Original_<ArgumentName>) aux propriétés d’origine (<PropertyName> (Original)) pour les commandes Update et Delete.

    Notes

    Par défaut, les arguments de méthode sont mappés à des propriétés de classe lorsque les noms correspondent. Si les noms de propriété ont été modifiés et ne correspondent plus entre la table et la classe d'entité, vous devrez peut-être sélectionner la propriété de classe équivalente à mapper si le Concepteur O/R ne peut pas déterminer le mappage correct.

  10. Cliquez sur OK ou Appliquer.

    Notes

    Vous pouvez continuer à configurer le comportement de chaque classe et combinaison de comportements tant que vous cliquez sur Appliquer après avoir apporté chaque modification. Si vous modifiez la classe ou le comportement avant de cliquer sur Appliquer, une boîte de dialogue d’avertissement s’affiche et vous offre la possibilité d’appliquer vos modifications.

Pour rétablir l’utilisation de la logique runtime par défaut pour les mises à jour, cliquez sur les points de suspension à côté de la commande Insert, Update ou Delete dans la fenêtre Propriétés, puis sélectionnez Utiliser le runtime dans la boîte de dialogue Configurer le comportement.