SQL Server 2000,2005、および2008を使用するWebアプリケーションでEntity Frameworkを使用しています。新しいEDMXファイルを作成するときに、 2008年(最初に作成された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はアプリケーションごとに1つのバージョンのSql Serverでしか動作しないとは想像もつきません。私は設定や回避策が必要であると確信しています。単一のWebアプリケーション内で異なるバージョンのSQL ServerとEntity Frameworkを使用するソリューションはありますか?1つのASP.NETアプリケーションでEntity Frameworkを使用するSQL Serverの複数のバージョン
答えて
edmx
を別のアセンブリに入れることでこれを達成できました。
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
};
これはどこで動作するのか分かります。私が見ていた問題は、それが私の環境で働かない理由でした。当時の唯一の回避策は、すべてのProviderManifestTokenを同じバージョンに設定することでした。この時点から、私はすべてのDBSをMSSQL 2008に移行しました。なぜこれが私の元の質問に答えることができないのでしょうか、それは容認できる回避策です。 –
私は同じ問題がありました。それで、私は '@Cogwheel - Matthew Orlando'の提案をすべて実装しました。SQL Server 2005と2008の両方で完璧に機能します。注:diff名を使用してSQL 2008へのデータアクセスのための新しいプロジェクトを作成し、対応するSQLバージョン用の 'ProviderManifestToken'を修正し、2番目のプロジェクトの名前空間を新しいアセンブリ名に従って置き換えました(必要かどうかわかりません)。そして今私は幸せです。 – mastak
最初にコードを使用する際にこれを行う方法に関する考えはありますか? –
このリンクは、私を助けた:そして、接続文字列では、すべての私も(主張に反して、私は他のソースで見つかった)2つのエンティティモデル間の結合を実行することができますres://*/...
res://NameOfAssembly/...
で、例えば、交換SQLサーバー2005と2008に違いがあったときの問題を解決してください。http://kkryczka.wordpress.com/2011/01/03/all-ssdl-artifacts-must-target-the-same-provider-the-providermanifesttoken-2008-is-different-from-2005-that-was-encountered-earlier/
.edmxファイルを右クリックし、[XMLエディタで開く]を選択します。 オープンEntity Frameworkの.edmxファイル:
変更ProviderManifestToken 2008:
はMicrosoftにとってそのA既知の問題のように見えます。
- 1. UWPでSQL ServerでEntity Frameworkを使用
- 2. Entity Frameworkの1 - 私はFramework 3.5は、SQL Serverを使用してい
- 3. MS SQL ServerでEntity Frameworkの移行を使用する
- 4. C#複数のPCで1つのSQL Serverデータベースを使用
- 5. ASP.NET Core 1.0でEntity Framework 7を使用したSQL Serverビューの足場?
- 6. Entity Frameworkベースのアプリケーション用の余分なSQL Serverプロセス
- 7. Entity Framework 4とSQL Server 2008複数の可能な外部キー
- 8. ASP.NET MVC、SQL Server、Entity Frameworkを使用して検索ボックスを実装する
- 9. レイヤードアーキテクチャのASP.NETとEntity Framework - ORMのみのEntity Frameworkを使用
- 10. ASp.net Entity Framework複数のIDユーザーエンティティ
- 11. Entity Frameworkを使用したASP.NET MVCコードファーストデータベースからSQL Server Expressへのログイン失敗
- 12. Entity FrameworkでSQL Server Compact 3.5を使用する方法
- 13. Entity Frameworkで(SQL Server)xml列を使用する
- 14. asp.net webformsアプリケーションでのEntity Frameworkのベストプラクティス
- 15. AppHarbor - 複数のアプリケーションで同じSQL Serverを使用する
- 16. Entity Frameworkを使用してSQL Serverにオブジェクトのリストを格納
- 17. Entity Framework 1をバージョン4にアップグレードする
- 18. Entity Framework DatabaseGeneratedOption SQL Server GETDATE
- 19. Entity FrameworkとSQL Serverチューニングアドバイザ
- 20. Entity Frameworkで1つのステートメントを持つ複数のテーブルをシードします
- 21. ASP.NET MVCのEntity Frameworkでストアドプロシージャを使用して複数のテーブルから複数のレコードを取得する
- 22. ドライバインストールのないSQL Server CEのEntity Framework
- 23. SQL ServerとEntity Frameworkのパフォーマンスの向上
- 24. 複数のデータソースを持つEntity Framework
- 25. 複数のデータベースを持つWPF Entity Framework
- 26. SQL Serverの複数のリストアに1つのバックアップファイルを使用する
- 27. ASP.NET Web APIとEntity Frameworkを使用したバージョン管理
- 28. Entity Framework 4.1で複数の行を1つのエンティティに結合する
- 29. Asp.netコアとEntity FrameworkがSQL Serverに接続できません
- 30. Entity FrameworkでSQL Server Compactを使用するための接続文字列?
重要な点は、sql 2000からsql 2008への移行の途中で、接続文字列を変更して「データベースからモデルを更新する」という奇妙なことに、すべてのSSDLをProviderManifestToken = "2005"を使用するとアプリが動作します。 –
私はこの問題への答えも探しています。私が今までに見つけた唯一の関連するGoogleの結果は、どんな深みにも入り込まない。 – Cogwheel