Procédure : mapper des fonctions de modification à des procédures stockées
Cette rubrique explique comment utiliser ADO.NET Entity Data Model Designer (Concepteur d'entités) pour mapper les opérations d'insertion, de mise à jour et de suppression d'un type d'entité à des procédures stockées.
Entity Framework génère une classe dérivée de ObjectContext qui représente le conteneur d'entités du modèle conceptuel. (Le nom de la classe dérivée est le nom du EntityContainer dans le fichier de modèle conceptuel.) Cette classe expose une méthode SaveChanges qui déclenche des mises à jour de la base de données sous-jacente. Ces mises à jour peuvent utiliser des instructions SQL qui sont générées automatiquement par le système (valeur par défaut) ou utiliser des procédures stockées qui sont spécifiées par le développeur. Le code d'application que vous utilisez pour créer, mettre à jour et supprimer des entités est le même, que vous utilisiez, ou non, des procédures stockées pour mettre à jour la base de données.
Lorsque vous mappez des opérations d'insertion, de mise à jour et de suppression d'un type d'entité à des procédures stockées, vous devez procéder comme suit :
Mappez les trois opérations à des procédures stockées.
Mappez des associations de manière cohérente. Si une procédure stockée mappe à une association pour une opération, les deux autres opérations doivent également mapper à l'association.
Mappez les entités associées qui ont une relation un-à-un à des procédures stockées. Si l'entité est associée à d'autres entités par une relation un-à-plusieurs ou plusieurs-à-plusieurs, il n'est pas nécessaire de mapper les entités associées à des procédures stockées.
Mappage de l'opération d'insertion à une procédure stockée
Pour mapper l'opération d'insertion à une procédure stockée
Double-cliquez sur le fichier <nom du modèle>.edmx dans l'Explorateur de solutions.
Le fichier s'ouvre dans le Concepteur d'entités.
Cliquez avec le bouton droit sur le type d'entité pour lequel vous voulez mapper l'opération d'insertion.
Sélectionnez Mappage de procédure stockée.
Le volet Mapper des fonctions d'entité de la fenêtre Détails de Mapping apparaît.
Cliquez sur <Sélectionner un Insert Function>.
Dans la liste déroulante, sélectionnez la procédure stockée à laquelle l'opération d'insertion sera mappée.
La fenêtre est remplie avec les mappages par défaut entre les propriétés d'entité et les paramètres de procédure stockée.
Pour chaque paramètre de procédure stockée, modifiez le mappage de manière appropriée en cliquant sur le champ de propriété correspondant et en sélectionnant la propriété appropriée dans la liste déroulante.
Remarque Toutes les clés d'entité doivent avoir des mappages. Si la procédure stockée utilise une instruction INSERT, la clé d'entité sera généralement mappée à la clé primaire qui a été créée lors de l'insertion de la nouvelle ligne. Les étapes suivantes expliquent comment mapper des données qui sont retournées par la procédure stockée à des propriétés d'entité.
Cliquez sur <Ajouter un Result Binding>.
Le champ devient modifiable.
Tapez le nom du paramètre qui contient les données retournées par la procédure stockée.
Cliquez sur le champ de propriété qui correspond au nom de paramètre.
Le champ devient une liste déroulante de propriétés.
Sélectionnez la propriété à laquelle vous voulez que les données retournées soient mappées.
Répétez les étapes 7 à 10 pour chaque valeur retournée et chaque propriété non mappée.
L'opération d'insertion pour le type d'entité sélectionné est maintenant mappée à une procédure stockée.
Mappage de l'opération de mise à jour à une procédure stockée
Pour mapper l'opération de mise à jour à une procédure stockée
Double-cliquez sur le fichier <nom du modèle>.edmx dans l'Explorateur de solutions.
Le fichier s'ouvre dans le Concepteur d'entités.
Cliquez avec le bouton droit sur le type d'entité pour lequel vous voulez mapper l'opération de mise à jour.
Sélectionnez Mappage de procédure stockée.
Le volet Mapper des fonctions d'entité de la fenêtre Détails de Mapping apparaît.
Cliquez sur <Sélectionner un Update Function>.
Dans la liste déroulante, sélectionnez la procédure stockée à laquelle l'opération de mise à jour sera mappée.
La fenêtre est remplie avec les mappages par défaut entre les propriétés d'entité et les paramètres de procédure stockée.
Pour chaque paramètre de procédure stockée, modifiez le mappage de manière appropriée en cliquant sur le champ de propriété correspondant et en sélectionnant la propriété appropriée dans la liste déroulante.
Pour chaque propriété, vous pouvez éventuellement activez la case à cocher dans la colonne Utiliser Original Value.
L'option Utiliser Original Value vous permet d'utiliser le contrôle d'accès concurrentiel. Si l'option Utiliser Original Value est sélectionnée pour une propriété, la valeur de la propriété qui a été lue à partir de la base de données sera passée au paramètre de procédure stockée spécifié. Notez que les valeurs d'origine aussi bien que les valeurs actuelles d'une propriété peuvent être passées à différents paramètres.
Remarque Lorsque vous mappez l'opération de mise à jour, vous pouvez mapper des données qui ont été retournées par la procédure stockée à des propriétés d'entité. Les étapes suivantes expliquent comment mapper des données retournées par la procédure stockée à des propriétés d'entité.
Cliquez sur <Ajouter un Result Binding>.
Le champ devient modifiable.
Tapez le nom du paramètre qui contient les données retournées par la procédure stockée.
Cliquez sur le champ de propriété qui correspond au nom de paramètre.
Dans la liste déroulante, sélectionnez la propriété à laquelle vous voulez que les données retournées soient mappées.
Répétez éventuellement les étapes 8 à 11 pour chaque valeur retournée.
L'opération de mise à jour pour le type d'entité sélectionné est maintenant mappée à une procédure stockée.
Mappage de l'opération de suppression à une procédure stockée
Pour mapper l'opération de suppression à une procédure stockée
Double-cliquez sur le fichier <nom du modèle>.edmx dans l'Explorateur de solutions.
Le fichier s'ouvre dans le Concepteur d'entités.
Cliquez avec le bouton droit sur le type d'entité pour lequel vous voulez mapper l'opération de suppression.
Sélectionnez Mappage de procédure stockée.
Le volet Mapper des fonctions d'entité de la fenêtre Détails de Mapping apparaît.
Cliquez sur <Sélectionner un Delete Function>.
Dans la liste déroulante, sélectionnez la procédure stockée à laquelle l'opération de suppression sera mappée.
La fenêtre est remplie avec les mappages par défaut entre les propriétés d'entité et les paramètres de procédure stockée.
Pour chaque paramètre de procédure stockée, modifiez le mappage de manière appropriée en cliquant sur le champ de propriété correspondant et en sélectionnant la propriété appropriée dans la liste déroulante.
Remarque Vous devez mapper des associations à des paramètres de procédure stockée. Les associations peuvent être sélectionnées dans la liste déroulante de propriétés.
Voir aussi
Tâches
Procédure pas à pas : mappage d'une entité à des procédures stockées
Autres ressources
Prise en charge des procédures stockées (Entity Framework)
Code d'application pour les procédures stockées mappées (Entity Framework)