Laden...

EntityFramework: Datenbank in der App.config wechseln

Erstellt von pilipu vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.943 Views
pilipu Themenstarter:in
26 Beiträge seit 2011
vor 12 Jahren
EntityFramework: Datenbank in der App.config wechseln

verwendetes Datenbanksystem: SQL Server Express & SQL Server Compact

Hi,
ich habe eine kleine TestConsole geschrieben, die mit einem einem einfachen select den Zugriff auf eine DB via EF testen soll. So weit so gut. Nun soll jedoch eine andere Datenbank angesprochen werden. Und dies stellt mich vor ein Problem mit dem Connection-String in der App.config Datei. Die neue Datenbank (selbe Tabellen-Struktur wie die erste) kann nicht gefunden werden. NUR wenn ich die absoluten Pfade zu den entsprechenden *.csdl, *.ssdl, *.msl Files angebe läuft der SELECT durch.
In den App.configs-Dateien in den Projekten in der die EDMX'es liegen, liegen jedoch die Pfade relativ vor ... hier meine Frage: Kann man diesen relativen Pfad irgendwie beeinflussen? Bzw. Wo zeigt der überhaupt genau hin? Meine Suche blieb bisher erfolglos!

Hat da jemand schonmal was gemacht/Erfahrung mit verschiedenen EDMX'en und/oder verschiedenen DB's ???

"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." - Klaus Kornwachs

G
538 Beiträge seit 2008
vor 12 Jahren

Diese Pfade mit den * drin bedeuten soviel wie "suche in allen Assemblies die meinem Projekt angehören" - was aber dazu führen kann, dass sie die Resource mehrfach finden.
Sofern du also die CSDL Dateien in einer Resource hast kannst du sie mit res://<AssemblyName>/<Model>.csdl ansprechen.

Wie genau sie heißt findest du zum Beispiel mit dem ILSpy heraus.

Mehr Informationen dazu auch hier:MetadataException

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

pilipu Themenstarter:in
26 Beiträge seit 2011
vor 12 Jahren

danke für die Antowrt!

viele nützliche Information und auch Lösungsansätze, leider haben diese mich auch nicht weiter gebracht... ich erhalte weiterhin die selbe Exeption um die es sich bei StackOverflow auch handelt (* MetaDataException: Unablt to load the specified metadata resource)

"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." - Klaus Kornwachs

A
350 Beiträge seit 2010
vor 12 Jahren

Hi Pilipu,

um mal einen anderen Weg der Beeinflussung einzuschlagen:
Schau dir mal den Entity Framework Connection Builder an
Damit solltest du realtiv leicht, zwischen DBs usw. wechseln können.
Die jeweiligen Konfigurations Propertys kannst du dann ja in der App.Config speichern

http://msdn.microsoft.com/de-de/library/bb738533.aspx

Grüße

pilipu Themenstarter:in
26 Beiträge seit 2011
vor 12 Jahren

So das Problem ist gelöst 😉

Über Umwege dann doch zur Lösung gekommen: der * im ConnectionString bedeutet nicht nur "suche in allen Assemblies die meinem Projekt angehören" sondern auch, dass diese geladen sein müssen 😃

PS: Ahri du kennst mich =O Du darfst ruhig Pille zu mir sagen =O

"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." - Klaus Kornwachs