2016-06-03 3 views
0

Ja laden las ich habe und versuchen entity framework Unable to load the specified metadata resourceEntity Framework Fehler kann die angegebene Metadaten Ressource

ich verwenden in der Regel Code erste und haben keine Probleme hatte. Allerdings musste ich mit EDMX

Kontext ein Projekt beheben:

public partial class x500Entities : DbContext 
{ 
    public x500Entities() 
     : base("name=x500Entities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public virtual DbSet<WorkerPublicExtended> WorkerPublicExtendeds { get; set; } 
} 

Verbindungszeichenfolge:

<add name="x500Entities" 
connectionString="metadata=res://*/CDISWorkerPublicExtended.csdl|res://*/CDISWorkerPublicExtended.ssdl|res://*/CDISWorkerPublicExtended.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xserver;initial catalog=x500;persist security info=True;user id=xuser;password=xpassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
providerName="System.Data.EntityClient"/> 

ERROR:

Eine Ausnahme vom Typ 'System.Data.Entity.Core.MetadataException' ist in EntityFramework.dll aufgetreten, wurde aber nicht im Benutzercode verarbeitet. Weitere Informationen: Die angegebene Metadatenressource konnte nicht geladen werden.

Auf diese Linie schlagen:

return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim()); 

komplette Methode:

public WorkerPublicExtended GetEmployee(string idsid) 
{ 
    using (x500Entities context = new x500Entities()) 
    { 
     return context.WorkerPublicExtendeds.FirstOrDefault(x => x.upperIDSID == idsid.ToUpper().Trim()); 
    } 
} 
  1. Warum ist das passiert?
  2. Ich verbunden mit SQL Server ssms und ich sehe nicht die Tabelle WorkerPublicExtended, die ich in Diagramm EDMX und das Modell gesehen habe, ich sehe nicht, wo dieser Name in einen echten Tabellennamen übersetzt wird. Wie ist das?

Antwort

0

Mögliche Ursachen: 1) Ihre Ressourcendatei in Ihnen Projekt (diese Ressource-Datei konfiguriert ist, nirgendwo werden soll, gefunden in Ihnen in Verbindung String app.config) bestätigen oyu es haben.

2) Wenn Sie sagen, dass Sie eine Verbindung zur Datenbank herstellen und die Tabelle nicht angezeigt wird, befinden Sie sich in der falschen Datenbank? das sollte nie passieren, du hast ein EDMX für eine andere Datenbank erstellt oder jemand hat die Tabelle gelöscht und das edmx nicht neu generiert? : X

Wenn Sie 200% sicher sind, dass die Datenbank, die Sie verbinden, das neueste Schema, Prozeduren, Ansichten usw. ist oder die Produktionsdatenbank, warum nicht die gesamte edmx löschen und neu erstellen, testen und erneut bereitstellen?

0

Die drei Teile des EMDX sehen in der Verbindungszeichenfolge korrekt aus. Nach nochmaliger Prüfung dieses Teils (auf diese guideline beziehen Ihr Problem zu beheben) korrekt sein:

  • Sie könnten die MetadataArtifactProcessing Eigenschaft des Modells geändert haben Ausgabeverzeichnis zu kopieren, oder
  • Sie geändert andere Dinge (wie der Name einer Assembly), oder
  • Möglicherweise verwenden Sie eine Aufgabe nach der Kompilierung, um EMDX einzubetten, die nicht mehr funktioniert.

Quelle von here.

Überprüfen Sie auch die gesamte Zeichenfolge auf korrekte Syntax.

Verwandte Themen