Procédure : mapper des fonctions de modification à des procédures stockées (Entity Data Model Tools)
Cette rubrique explique comment utiliser ADO.NET Entity Data Model Designer (Entity Designer) 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.
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 UpdateException est levée. |
Les procédures suivantes supposent que vous avez ouvert un fichier .edmx dans le Concepteur d'entités.
Mappage de l'opération d'insertion à une procédure stockée
Pour mapper l'opération d'insertion à une procédure stockée
Sur l'aire du Concepteur d'entités ou dans la Fenêtre Explorateur de modèles, cliquez avec le bouton droit sur le type d'entité pour lequel vous voulez mapper l'opération d'insertion, puis sélectionnez Mappage de procédure stockée.
La vue Mapper un Entity à des Functions de la fenêtre Détails de mappage 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.
Remarque : Pour les paramètres de sortie avec une valeur entière, la case à cocher Paramètre des lignes affectées est activée.Si la case à cocher est sélectionnée pour un paramètre et que la valeur retournée est zéro lorsque l'opération d'insertion est appelée, une OptimisticConcurrencyException est levée. Répétez les étapes 5 à 8 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
Sur l'aire du Concepteur d'entités ou dans la Fenêtre Explorateur de modèles, cliquez avec le bouton droit sur le type d'entité pour lequel vous voulez mapper l'opération d'insertion, puis sélectionnez Mappage de procédure stockée.
La vue Mapper un Entity à des Functions de la fenêtre Détails de mappage 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.
Remarque : Pour les paramètres de sortie avec une valeur entière, la case à cocher Paramètre des lignes affectées est activée.Si la case à cocher est sélectionnée pour un paramètre et que la valeur retournée est zéro lorsque l'opération de mise à jour est appelée, une OptimisticConcurrencyException est levée. Répétez éventuellement les étapes 6 à 9 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
Sur l'aire du Concepteur d'entités ou dans la Fenêtre Explorateur de modèles, cliquez avec le bouton droit sur le type d'entité pour lequel vous voulez mapper l'opération d'insertion, puis sélectionnez Mappage de procédure stockée.
La vue Mapper un Entity à des Functions de la fenêtre Détails de mappage 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.
Remarque : |
---|
Pour les paramètres de sortie avec une valeur entière, la case à cocher Paramètre des lignes affectées est activée.Si la case à cocher est sélectionnée pour un paramètre et que la valeur retournée est zéro lorsque l'opération de suppression est appelée, une OptimisticConcurrencyException est levée. |
Voir aussi
Tâches
Procédure pas à pas : mappage d'une entité aux procédures stockées (Entity Data Model Tools)