Mehrere Versionen von SQL Server unter Verwendung von Entity Framework in einer einzigen Anwendung von ASP.NET

StackOverflow https://stackoverflow.com/questions/1061409

Frage

Ich bin mit dem Entity Framework in einer Web-Anwendung, die SQL Server 2000 verwendet, 2005 und 2008. Wenn ich eine neue EDMX-Datei anders als 2008 mit etwas erstellen (Version des ersten edmx erstellt) Ich erhalte error 0172: All SSDL artifacts must target the same provider. The Provider 'MyDatabase' is different from ' MyDatabase ' that was encountered earlier. Es scheint, dass irgendwo im Code wird die Verbindung zu einem 2008-Datenspeicher angeschlossen und, wenn es die SSDL Datei überprüft und sieht einen anderen ProviderManifestToken Wert wirft es diesen Fehler. Ich bin ein wenig mehr als frustriert. Es ist schwer vorstellbar, dass EF nur mit einer einzigen Version von SQL Server pro Anwendung arbeiten. Ich bin ziemlich sicher, es muss eine Einstellung oder Problemumgehung sein. Hat jemand eine Lösung für verschiedene Versionen von SQL Server und dem Entity Framework in einer einzigen Web-Anwendung verwenden?

War es hilfreich?

Lösung

Ich war in der Lage, dies zu erreichen, indem jeden edmx in einer separaten Assembly setzen. Dann in der Verbindungszeichenfolge ersetzt all res://*/... mit res://NameOfAssembly/...

Ich kann sogar Verbindungen zwischen den beiden Unternehmen Modellen durchführt (im Gegensatz zu Forderungen fand ich in anderen Quellen), z.

var oneDb = new Entities2000();
var otherDb = new Entities2005();

var results = from one in oneDb.SomeSet
              join other in otherDb.OtherSet
                  on one.Property equals other.Property
              select new { 
                  SomeProp = one.SomeProp,
                  OtherProp = other.OtherProp 
              };

Andere Tipps

Dieser Link hat mir geholfen, das Problem zu lösen, wenn ein Unterschied in SQL Server 2005 und 2008 gibt es. http://kkryczka.wordpress.com/2011/01/03/all-ssdl-artifacts-must-target-the-same-provider-the- providermanifesttoken-2008-is-andere-von-2005-das-was-angetroffen früheren /

Direkt an der .edmx Datei und wählen Sie Öffnen mit XML-Editor. Öffnen Sie Entity Framework .edmx-Datei:

Ändern Sie den ProviderManifestToken bis 2008:

Sieht aus wie es ist ein bekanntes Problem für Microsoft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top