多数のデータベースがあり、すべて同じスキーマを共有しています。それらは、いくつかのSQL Server、一部の2005、一部の2008に広がっています。最初に次のように述べた2008サーバーに接続した後、2005サーバーに接続すると例外が発生します。
エントリの更新中にエラーが発生しました。詳細については、内部例外を参照してください。エントリの更新中にエラーが発生しました。詳細については、内部例外を参照してください。使用中のSQLServerのバージョンは、データ型'datetime2'をサポートしていません。
ですから、私が理解しているように、モデルは2008 SQLサーバープロバイダー情報に従って作成されているため、2005サーバーに接続すると、DateTime2データ型はサポートされていないため使用できません。
2005サーバーに対してモデルを構築したいのですが、接続文字列とDbCompiledModelの両方を指定する方法がわかりません。以前は、(他のパラメーターの中でも)接続文字列を受け取るコンストラクターがいくつかありました...
public ProjectContext(string ConnectionString) : base(ConnectionString)
{
// Get the ObjectContext related to this DbContext
var objectContext = (this as IObjectContextAdapter).ObjectContext;
// ... does some stuff with the ObjectContext
}
すべてのコンテキスト(最小公分母)に対して2005サーバーに対して構築されたコンパイル済みモデルを指定し、接続文字列を指定するにはどうすればよいですか?現時点では、それを行う方法がわかりません。
どんな助けでもいただければ幸いです。
編集:Entity Framework 4.3 Code Firstを使用しているため、編集する設計時のEDMXファイルはありません。