私たちは、各クライアントが独自のデータベースインスタンスを持っている環境を持っています(すべての目的と目的のために同一のスキーマを使用しています)。私たちは、クライアントが特定のデータベースのデータに対してCRUD操作を実行するためにログインできるダッシュボードアプリケーションを持っています。データベースと対話するために、コードファーストEFモデルを使用します。 DbContext
をインスタンス化するときに、クライアントのデータベースの接続文字列を渡すだけです。コードファーストEFモデルのProviderManifestTokenをプログラムで設定することはできますか?
ただし、データベースインスタンスはSQL Server 2005と2008の混在しています。特定のページで私たちが見ている問題の根本)
、我々は次のようなエラーが発生見るために始めました:。
使用中のSQL Serverのバージョンは、データ型「DATETIME2」をサポートしていません。 。
グーグルとStackOverflowingから、私はそれはDbContext
に、おそらく誤って設定ProviderManifestToken
によるものだという結論に来ています。
ただし、エラーは散発的です。プロダクションエラーログに基づいて、エラーが発生した同じクライアントを表示し、エラーを表示せずに同じCRUD操作を実行できます。
私は迷っています。
ProviderManifestToken
をプログラムで設定することはできますか?または、デフォルトの接続ファクトリが正しく設定されていない可能性があります(それをサポートするために何かできることがあります)。または私は基本から離れている?何か案は?ところで
...
NULL可能であり、どちらも2つのdatetime
列を、持っている(と最新のエラーはその値として2012年1月13日null
とした上でエラーが発生しているエンティティこれらのフィールドのために、私は値がdatetime
の範囲内にあることを確実にすることについてthis answerが適用されないことを確信している。
コンテキストに接続文字列を正確にどのように渡しますか? –
@LadislavMrnka DbContextには、接続文字列を受け入れるコンストラクタオーバーロードがあります。したがって、接続するデータベースがEFモデルと一致する限り、あなたはうまく行きます。基本的なアイデアはここにあります:https://gist.github.com/1614591無罪を守るために私たちの実装が省略されています:) – Lobstrosity