734 Stimmen

MetadataException: Die angegebene Metadaten-Ressource kann nicht geladen werden

Plötzlich bekomme ich immer wieder eine MetadataException bei der Instanziierung meiner generierten ObjectContext Klasse. Die Verbindungszeichenfolge in App.Config sieht korrekt aus - hat sich nicht geändert, seit es das letzte Mal funktionierte - und ich habe versucht, ein neues Modell (edmx-Datei) aus der zugrunde liegenden Datenbank zu regenerieren, ohne dass sich etwas geändert hat.

Hat jemand eine Idee?

Weitere Einzelheiten: Ich habe keine Eigenschaften geändert, ich habe den Namen der Ausgabebaugruppen nicht geändert, ich habe nicht versucht, das EDMX in die Baugruppe einzubetten. Ich habe lediglich 10 Stunden gewartet, vom Verlassen der Arbeit bis ich zurückkam. Und dann hat es nicht mehr funktioniert.

Ich habe versucht, das EDMX neu zu erstellen. Ich habe versucht, das Projekt neu zu erstellen. Ich habe sogar versucht, die Datenbank von Grund auf neu zu erstellen. Kein Glück, was auch immer.

17 Stimmen

Wenn eine Frage SO zu einem bestimmten Produkt mehr als 200k Aufrufe hat, dann funktioniert das Produkt nicht so, wie die Nutzer es erwarten. Ich würde mir wünschen, dass Microsoft sich dieses Problems annimmt. Hier ist ein Link, über den Sie ihnen Vorschläge machen können, wenn Sie Zeit haben: visualstudio.uservoice.com/forums/121579-visual-studio .

1 Stimmen

Mein Problem gelöst, durch Ersetzen der Verbindung-Zeichenfolge aus db-Layer-Projekt kopiert.

0 Stimmen

Ich habe auch dieses Problem, ich nur sauber und neu erstellen Lösung, die gut funktioniert.

8voto

TobyEvans Punkte 1402

Ich habe gerade 30 Minuten damit verbracht. Ich hatte das Entitäten-Objekt umbenannt, den Eintrag in der Konfigurationsdatei umbenannt, aber es gibt noch mehr ... man muss auch den Verweis auf die csdl ändern

sehr leicht zu übersehen - wenn Sie umbenennen, stellen Sie sicher, dass Sie die alles ....

8voto

Basheer AL-MOMANI Punkte 13273

Ich habe einen ganzen Tag mit diesem Fehler verbracht

wenn Sie arbeiten mit n-tear architecture

oder Sie haben versucht separate Models erzeugt durch EDMX Formular DataAccessLayer zu DomainModelLayer

vielleicht erhalten Sie diese Fehlermeldung

  1. Der erste Schritt bei der Fehlerbehebung besteht darin, sicherzustellen, dass die Verbindungszeichenfolge in webconfig (UILayer) y appconfig (DataAccessLayer) sind identisch
  2. Zweitens, was sehr wichtig ist, die connection string

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

    was das Problem ist

woher in aller Welt ich die Model oder was auch immer .csdl in meiner Verbindung Zeichenfolge, wo sie sind

hier ist unsere Lösung siehe das Bild

enter image description here

hoffen, dass sie Ihnen helfen

6voto

user464507 Punkte 61

In meinem Fall wurde das Problem durch Änderung der Eigenschaften der edmx-Datei gelöst.

  1. Öffnen Sie die edmx-Datei
  2. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle des EDMX-Designers
  3. Eigenschaften wählen
  4. aktualisieren Sie die Eigenschaft "Metadaten-Artefaktverarbeitung" auf "Einbetten in die Ausgabegruppe".

Damit ist das Problem für mich gelöst. Das Problem ist, wenn der Container versucht, die Metadaten zu finden, kann es nicht finden. so einfach machen es in der gleichen Baugruppe. diese Lösung wird nicht funktionieren, wenn Sie Ihre edmx-Dateien in einer anderen Baugruppe haben

0 Stimmen

+1.000.000 das war für mich heute das eigentliche Thema. Schmerzen bei der Umstrukturierung eines Produkts Namensräume und Konsolidierung von Baugruppen.

6voto

Pitming Punkte 542

Ich hatte das gleiche Problem. Ich habe mir meine kompilierte DLL mit Reflektor angesehen und gesehen, dass der Name der Ressource nicht richtig war. Ich habe umbenannt und es sieht jetzt gut aus.

5voto

Internet Engineer Punkte 2454

Ich war in der Lage, dies in Visual Studio 2010, VB.net (ASP.NET) 4.0 zu beheben.

Während des Assistenten für Entitätsmodelle können Sie die Entitätsverbindungszeichenfolge sehen. Von dort aus können Sie sie kopieren und in Ihre Verbindungszeichenfolge einfügen.

Das Einzige, was mir fehlte, war der "App_Code." in der Verbindungszeichenfolge.

entityBuilder.Metadata = "res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl"

0 Stimmen

Leider ist die Verbindungszeichenfolge im Assistenten für app.config nicht korrekt. @leqid schlug einen guten Weg vor, um den Pfad zum Modell zu fixieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X