質問
たぶんこれはただの馬鹿げたアイデアだ、だからここに投げる:
基本データと現在のデータ(顧客、記事、在庫、未払い請求書など)に1つのデータベースを使用し、アーカイブデータ(旧請求書、在庫移動など)に1つのデータベースを使用して、アプリケーションを作成しています。
厄介な小さな問題は、MSDTCだけです。ほとんどのトランザクションは1つのデータベースにしか関係しませんが、いくつかのトランザクションは現在のデータベースと1つのアーカイブ年に関係しています。すべてのデータベースが同じサーバー上で再署名するため、これは2つのデータベース間の単純なトランザクションになる可能性があります。
ただし、Linq to entitiesでは、データベースごとに個別の接続を作成する必要があり、ここでMSDTCが起動し、a)インストールする必要があり、b)全体が遅くなります。
迷惑です!
2つのADO.Netエンティティフレームワークモデルが同じ接続を使用し、両方が独自の現在のデータベースを持っているようにする方法はありませんか?
すでにを試みましたが、EFスキーマでデータベースを指定しましたが、EFはこれは好きではなく、ブロックします。
非常に迷惑です。すべてのテーブルを1つのデータベースに移動するだけでいいのかもしれませんが、バックアップと高速化のためにデータを分離しようとすると、これは後の痛みです。
解決
接続でChangeDatabaseを呼び出してみてください。複数の接続を使用する場合、MSDTCは常に関与します。 1つのデータベースでも。したがって、常に1つの接続を維持し、この方法でデータベースを変更することをお勧めします。
これがお役に立てば幸いです。
所属していません StackOverflow