2011-01-01 14 views
1

Ich erstelle eine neue Anwendung mit EF4. Der EF-Code befindet sich zusammen mit dem Repository-Code in einer eigenen Assembly. Ich versuche, mit MSTest von Visual Studio einige Komponententests durchzuführen, aber ich habe Schwierigkeiten, loszulegen. Mein Code ist -EF-Verbindungszeichenfolge im MSTest-Einheitstest nicht gefunden

string s = "metadata=res://*/DataModels.MonitorUrlEf.csdl|res://*/DataModels.MonitorUrlEf.ssdl|res://*/DataModels.MonitorUrlEf.msl;provider=System.Data.SqlClient;provider connection string=\"Data Source=TOM-VAIO;Initial Catalog=WebMonDb4;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True\""; 
var DbContext = new WebMonDb4Entities(s); 

WebMonDb4Entities ist der EF-Kontext durch die EF-Designer erstellt. Ich setze die Verbindungszeichenfolge in eine Variable, damit ich mich nicht mit den Problemen befassen muss, wo die Verbindungsdateien während des Tests sind. Der Inhalt der Zeichenfolge wird aus der Datei app.config im Projekt mit dem EF-Designercode kopiert.

Der Fehler ist "Kann die angegebene Metadaten-Ressource nicht laden." Ich habe etwas Forschung und dies sollte funktionieren. Irgendwelche Vorschläge?

+0

Haben Sie sich das angesehen: http://stackoverflow.com/questions/689355/metadataexception-unable-to-load-the-specified-metadata-resource/2294308#2294308 – Rytmis

+0

Die Antwort funktionierte. Eigentlich ein sehr elegantes Stück Code. Wenn Sie diesen Kommentar zu einer Antwort machen, werde ich Ihnen die Ehre geben. –

Antwort

1

Es sieht so aus, als ob Ihr Problem behoben werden kann, indem Sie Ihren EDMX-Referenzen vollständig qualifizierte Namespaces hinzufügen, wie in der Dokumentation here dokumentiert. :-)

0

Sie können Ihre Arbeitskonfigurationsdatei für das Komponententestprojekt hinzufügen/kopieren. Oder kopieren/erstellen Sie Ihr Verbindungs-String-Element darin.

Und von einigen Forschung finde ich, dass besser, Instanz von EntityConnection zu erstellen und es zu verwenden.

Überprüfen Sie auch einige discussion hier zum gleichen Thema.

+0

Keine Option funktioniert. Das Hinzufügen der Konfigurationsdatei war eine, von der Sie denken, dass das funktionieren würde, aber das war es nicht. –

Verwandte Themen