J'ai eu d'innombrables problèmes avec les procédures stockées et EDMX. J'ai créé une procédure, mis à jour le modèle à partir de la base de données et tout a fonctionné. J'ai ensuite supprimé une colonne et ajouté une nouvelle dans la procédure stockée. J'ai mis à jour le modèle, mais EDMX n'a pas semblé actualiser la définition de proc.
J'ai abandonné le proc et fait une mise à jour, mais j'ai dû supprimer manuellement toutes les références au proc. J'ai fini par renommer le proc et importer via la mise à jour du modèle à partir de la base de données.
Je viens d'avoir le même problème. Ajout d'une nouvelle colonne et renommé une colonne existante. J'ai actualisé l'EDMX via le modèle de mise à jour à partir de la base de données, mais aucune modification n'a été apportée à l'EDMX et, évidemment, au moment de l'exécution, l'opération a échoué. Comment une mise à jour de procédure stockée doit-elle être effectuée avec Entity Framework?
J'ai supprimé le proc, régénéré le modèle, supprimé les fichiers 'cs' pour le proc, 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, seul le dernier ayant raison. Pourquoi continue-t-il à ramener les anciennes versions?
(Cette solution concerne EF 6. Je n'ai pas essayé d'autres versions d'EF. Cela fonctionne bien.)
Aller au navigateur de modèle. MyStoreProc est le nom de la procédure stockée (à titre d'exemple). MyStoreProc apparaîtra à 3 endroits.
Supprimez tous les trois du modèle ..__ Enregistrez l'edmx (en cliquant dans la fenêtre puis sur Ctrl + S). Cliquez ensuite avec le bouton droit de la souris et cliquez sur mettre à jour le modèle à partir de la base de données. Ajoutez ensuite la procédure stockée mise à jour et enregistrez à nouveau.
Résolu sans tracas :)
Pour actualiser une procédure stockée existante dans un fichier edmx,
La seule solution que je pouvais trouver était de fermer EDMX et d'éditer manuellement le code XML qui, même après avoir supprimé le processus stocké de la base de données et mis à jour le modèle à partir de la base de données, avait toujours mentionné le processus. Supprimer les lignes du XML a résolu le problème.
Suivez ces étapes:
Étape 1: Ouvrez Edmx
Étape 2: Ouvrir le navigateur de modèle
Étape 3: Ouvrez les types complexes et supprimez votre procedure_Result
Étape 4: Fonctions ouvertes Importe et supprime votre procedure
Étape 5 Ouvrez StoredProcedur et Fonctions et supprimez votre procedure
Étape 6: Enregistrez Edmx (Ctrl+S), Clean Solution , Update Model From Database
et sélectionnez votre procedure
que vous souhaitez mettre à jour, puis finalement clean, build
solution. Terminé !
Tout d’abord, actualisez votre SP via "Mettre à jour le modèle à partir de la base de données", s’il fonctionne correctement, sinon, et en lançant la même exception, suivez les étapes indiquées ci-dessous . 1. Cliquez deux fois. fichier edmx . 2. Dans le navigateur de modèle, supprimez SP des types complexes, des importations de fonction et des procédures/procédures stockées . 3. Enregistrer tout . 4.Ajoutez à nouveau votre SP à "Mettre à jour le modèle à partir de la base de données" . 5.Save All.