web-dev-qa-db-fra.com

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

Mes chaînes de connexion sont les suivantes:

<add name="RollCallDBEntities" connectionString="metadata=res://System.Engine/RollcallNS.csdl|res://System.Engine/RollcallNS.ssdl|res://System.Engine/RollcallNS.msl;provider=Devart.Data.Oracle;provider connection string=&quot;User Id=user;Password=password;Server=127.0.0.1;Direct=True;Sid=ORCL&quot;" providerName="System.Data.EntityClient" />

mon code est le suivant:

using (var db= new RollCallDBEntities()) //ok
{
   var query = db.TBL_ROLLCALL.ToList(); //Unable to load the specified metadata resource.
}

mon assemblée:

System.Engine

Quelqu'un a des idées?

ces liens n'ont pas résolu mon problème:
MetadataException: impossible de charger la ressource de métadonnées spécifiée
structure de l'entité Impossible de charger la ressource de métadonnées spécifiée
Entity Framework: Impossible de charger la ressource de métadonnées spécifiée
Impossible de charger la ressource de métadonnées spécifiée

20
Meysam Savameri

Reportez-vous à http://forums.devart.com/viewtopic.php?t=22092 .

Si cela ne vous aide pas, veuillez préciser:

  • travaillez-vous avec le modèle de données d'entité ADO.NET (.edmx) ou Modèle d'entité Devart (.edml)?
  • la valeur de la propriété Action de construction de votre fichier de modèle
  • la valeur de la propriété de traitement des artefacts de métadonnées de votre modèle
  • le numéro de build (x.xx.xxx) de votre dotConnect for Oracle
  • la version de votre Visual Studio
  • suivez les conseils de Pawel pour vérifier si des ressources ont été incorporées dans Assembly
5
Devart

Je recevais une exception comme celle-ci. Le problème était que j'ai renommé mon fichier .edmx et que j'ai oublié de changer le nom dans la chaîne de connexion du fichier Web.config:

metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;
57

La solution la plus simple qui a résolu ce problème pour moi était de supprimer le dossier obj, situé au même niveau que le dossier bin et relancer l'application.

5
AltF4_

J'ai utilisé EntityFramework 6.0 dans une solution comprenant plusieurs projets, tels qu'un projet de niveau WebSite et un projet de niveau DataAccess. Dans ma solution, les migrations doivent être effectuées dans un projet de niveau DataAccess.

Lorsque j'exécute la commande Add-Migration dans la console Package Manager, déclenché "Impossible de charger la ressource de métadonnées spécifiée".

Enfin, j'ai découvert que je définissais le projet de niveau WebSite en tant que projet "Démarrage" et que ce déclencheur dépassait l'exception. Il semble que le système commence par vérifier automatiquement les paramètres de la chaîne de connexion dans le projet de démarrage. Et ma chaîne de connexion de données définie dans le projet de niveau WebSite est 

"metadata = res: // /ApplicationEntities.csdl|res:// / ApplicationEntities.ssdl | res: //*/ApplicationEntities.msl; fournisseur = System.Data.SqlClient; fournisseur connexion chaîne =" source de données = catalogue initial = YourDatabaseName; sécurité intégrée = True; MultipleActiveResultSets = True; App = EntityFramework "" 

ce qui n'est pas correct pour le code en premier.

La chaîne de connexion correcte devrait être:

"Source de données = .; Catalogue initial = YourDatabaseName; Integrated Security = True" 

En conclusion, vérifiez toujours la section "connectionStrings" de web.config dans le projet de solution "StartUp".

2
ChinaHelloWorld

J'ai eu un produit similaire avec devart mysqlconnect - peut-être que cela pourrait aider.

J'ai un projet appelé EFModels qui contient le fichier .edml et qui est référencé par d'autres projets.

J'ai remarqué que la version Release d'un projet référençant EFModels contenait le fichier EFModels.dll, mais sa taille était beaucoup plus petite (127 Ko contre 437 Ko) que la version Debug d'EfModels.dll. Le déplacement de EFModels.dll de la version de débogage vers la version de publication a résolu le problème car, pour une raison quelconque, la version de publication n’intègrait pas le ssdl, etc.

0
Watson

J'ai également rencontré ce problème et c'est parce que j'ai oublié de faire référence au projet contenant le fichier EDMX.

0
maria

J'ai également rencontré ce problème et c'est parce que je passais de Entity Framework Model First à Entity Framework Code First et que j'avais oublié de changer la chaîne de connexion EDMX en chaîne de connexion 'normale'.

0
Morten Nørgaard

Si vous ne savez pas quel chemin utiliser pour vos fichiers de métadonnées, vous pouvez le savoir en compilant votre application, puis en ouvrant la DLL à l'aide de dotPeek de JetBrains et en recherchant le fichier .csdl, etc. .

0
philu