SQL Server 2000、2005、および2008を利用するWebアプリケーションでEntity Frameworkを使用しています。2008(作成された最初のedmxのバージョン)以外のものを使用して新しいEDMXファイルを作成するとerror 0172: All SSDL artifacts must target the same provider. The Provider 'MyDatabase' is different from ' MyDatabase ' that was encountered earlier.
、コードのどこかにあるようです。接続は2008データストアに接続されており、SSDLファイルをチェックして別のProviderManifestToken値を確認すると、このエラーがスローされます。私は少しイライラしています。EFがアプリケーションごとに単一バージョンのSQLServerでのみ機能することを想像するのは難しいです。設定または回避策が必要だと私はかなり確信しています。単一のWebアプリケーション内で異なるバージョンのSQLサーバーとEntityFrameworkを使用するソリューションを持っている人はいますか?
8732 次
2 に答える
24
edmx
それぞれを別々のアセンブリに入れることで、これを達成することができました。次に、接続文字列で、すべてres://*/...
をres://NameOfAssembly/...
2つのエンティティモデル間で結合を実行することもできます(他のソースで見つけたクレームとは異なります)。例:
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
};
于 2009-10-16T16:36:01.450 に答える
5
このリンクは、SQL Server 2005と2008に違いがあった場合に、問題を解決するのに役立ちました 。http://kkryczka.wordpress.com/2011/01/03/all-ssdl-artifacts-must-target-the-same-プロバイダー-プロバイダーマニフェストトークン-2008-is-different-from-2005-that-was-encountered-early/
.edmxファイルを右クリックし、[XMLエディターで開く]を選択します。EntityFrameworkの.edmxファイルを開きます。
ProviderManifestTokenを2008に変更します。
Microsoftの既知の問題のようです。
于 2011-01-27T21:11:43.403 に答える