MetadataException: impossible de charger la ressource de métadonnées spécifiée

.net ado.net c# entity-framework

Question

Tout à coup, je continue à recevoir une MetadataException lors de l'instanciation de ma classe ObjectContext générée. La chaîne de connexion dans App.Config semble correcte - elle n'a pas changé depuis le dernier fonctionnement - et j'ai essayé de régénérer un nouveau modèle (fichier edmx) à partir de la base de données sous-jacente sans modification.

Quelqu'un a des idées?

Détails supplémentaires: je n’ai changé aucune propriété, je n’ai pas changé le nom des assemblys de sortie, je n’ai pas essayé d’incorporer l’EDMX à l’assemblage. J'ai simplement attendu 10 heures entre mon départ et mon travail. Et puis ça ne marchait plus.

J'ai essayé de recréer l'EDMX. J'ai essayé de recréer le projet. J'ai même essayé de recréer la base de données, à partir de zéro. Pas de chance, que ce soit.

Réponse acceptée

Cela signifie que l'application est incapable de charger l'EDMX. Cela peut être causé par plusieurs facteurs.

  • Vous avez peut-être modifié la propriété MetadataArtifactProcessing du modèle sur Copier dans le répertoire de sortie.
  • La chaîne de connexion peut être incorrecte. Je sais que vous dites que vous ne l’avez pas changé, mais si vous avez changé d’autres choses (par exemple, le nom d’une assemblée), cela pourrait quand même être faux.
  • Vous utilisez peut-être une tâche de post-compilation pour incorporer EDMX dans l'assemblage, ce qui ne fonctionne plus pour une raison quelconque.

En bref, votre question ne contient pas suffisamment de détails pour donner une réponse précise, mais nous espérons que ces idées vous permettront de rester sur la bonne voie.

Mise à jour: j'ai écrit un article de blog avec des étapes plus complètes pour le dépannage .


Réponse populaire

Ce petit changement aide à résoudre ce problème.

J'ai la solution avec 3 projet.

connectionString="metadata=res://*/Model.Project.csdl|res://*/Model.Project.ssdl|res://*/Model.Project.msl;

changer à

connectionString="metadata=res://*/;


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow