Verwendung von zwei verschiedenen Datenbanken gleichzeitig mit Entity Framework

8

Ich verwende Entity Framework 4 in einem MVC3-Projekt. Ich versuche auf zwei verschiedene Datenbanken zuzugreifen (A und B):

  • Die Datenbanken A und B sind völlig verschieden und nicht verwandt.
  • Datenbank A ist eine SQL-Kompaktdatenbank mit Code zuerst.
  • Datenbank B ist eine 'Datenbank zuerst' SQL Server-Datenbank.
  • Ich habe einfache Abfragen in beiden Datenbanken, keine Verknüpfungen oder datenbankübergreifende Verknüpfungen.
  • Jede Datenbankverbindung funktioniert, wenn ich den anderen DbContext aus dem Projekt entferne.

Wenn ich jetzt versuche, von der Datenbank A abzufragen, bekomme ich eine Exception "Konnte den konzeptionellen Modelltyp nicht finden".

Ich kann mir nicht vorstellen, dass EF es nicht erlaubt, verschiedene Datenbanken zu benutzen, also ist meine Frage: Muss ich etwas extra machen, wenn ich eine neue Instanz des passenden DbContext erstelle, damit das funktioniert?

    
Tom de Waard 01.05.2011, 21:43
quelle

2 Antworten

2

Ich bin über diesen Thread gestolpert, als ich versucht habe, die Ausnahme "Konzeptuelles Modell für" nicht aufzulösen.
Ich verwende EF 4.2 mit mehreren Modellen. Ich habe DbContext mit einem meiner Modelle implementiert, um es auszuprobieren. Als ich kompiliert und ausgeführt habe, habe ich oben die Ausnahme für eine Entität in einem komplett anderen Modell auf einer komplett anderen Datenbank erhalten!

Nach langem Ärger habe ich endlich DbContext in die anderen beiden Modelle eingebaut und alles lief gut.

Ich weiß, dass dies nicht unbedingt die Frage beantwortet, aber ich wollte dies hier für jeden anderen lassen, der das gleiche Problem hat und über diesen Beitrag stolpert.

    
Airn5475 08.02.2012 21:35
quelle
1

Stellen Sie sicher, dass Sie nicht den gleichen Entitätsnamen für beide edmx -Dateien verwenden. Sie können es ändern, indem Sie ein edmx mit xml editor öffnen und mit der rechten Maustaste auf die Datei und open with klicken.

Beachten Sie, dass Sie die Kontexte aus Sicherheitsgründen nicht verschachteln können. Sie können nur getrennt verwendet werden.

    
BrunoLM 01.05.2011 21:51
quelle

Tags und Links