87 votes

Procédures stockées et mise à jour d'EDMX

J'ai eu des problèmes interminables avec les procédures stockées et EDMX. J'ai créé une procédure, mis à jour le modèle de la base de données et tout a fonctionné. J'ai ensuite supprimé une colonne et en ai ajouté une nouvelle dans la procédure stockée. J'ai mis à jour le modèle, mais l'EDMX n'a pas semblé rafraîchir la définition de la procédure.

J'ai supprimé la proc et fait une mise à jour, mais j'ai dû supprimer manuellement toutes les références à la proc. J'ai fini par renommer la proc et l'importer via une mise à jour du modèle depuis la base de données.

Je viens de rencontrer le même problème. J'ai ajouté une nouvelle colonne et renommé une colonne existante. J'ai actualisé l'EDMX via le modèle de mise à jour de la base de données, mais il n'y a pas eu de changements dans l'EDMX, et il est évident qu'au moment de l'exécution, cela échoue. Comment doit-on procéder à la mise à jour d'une procédure stockée avec Entity Framework ?

enter image description here

J'ai supprimé la procédure, régénéré le modèle, supprimé les fichiers 'cs' de la procédure, compilé, puis ajouté à nouveau la procédure à la base de données, régénéré le modèle, et bang ! Il ajoute le même modèle 3 fois, et seule la dernière est correcte. Pourquoi continue-t-il à ramener les anciennes versions ?

0voto

Nashe Points 96

(Testé pour EF6 dans Visual Studio Community 2019 v16.8.5)

Allez dans le navigateur Model et naviguez jusqu'à votre procédure. L'un des deux endroits suivants :

  1. Modèle > Importations de fonctions > maProcédure
  2. Store > Procédures stockées / Fonctions > myProcedure

(Si vous ne savez toujours pas comment naviguer dans votre procédure, suivez les illustrations/images du billet d'Ishwor Khanal).

Cliquez avec le bouton droit de la souris sur votre procédure et sélectionnez "Update Model from Database..." (Mise à jour du modèle à partir de la base de données) dans le menu contextuel.
Context Menu

Cliquez sur l'onglet "Actualiser

enter image description here

Ouvrez "Procédures et fonctions stockées", puis "dbo".

Sélectionnez la procédure stockée que vous souhaitez mettre à jour et cliquez sur "Terminer". enter image description here

C'est fait ! (C'est moins compliqué que de supprimer puis d'importer à nouveau ;-) )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X