2017-03-03 7 views
0

私たちのシステムは、すべてが同じテーブル(標準テーブル)を共有するN個のデータステージを管理しますが、各データベースにも固有のテーブルがあります。エンティティフレームワーク、トランザクション

標準テーブルにアクセスするモジュールは、コアにプログラムされています。特定のテーブルにアクセスするために、データベースごとに特定のアセンブリがあるリフレクションによってアセンブリを読み込みます。

標準テーブル(コアプログラミング)と、操作全体がトランザクション内にある特定のもの(リフレクションによるもの)で動作する操作をどのように解決できますか。我々は分散トランザクションを使用することはできませんが原因で

私たちはあなたの両方のDbContextsに同じ接続文字列を使用する場合は

は事前

+0

リフレクションによってロードされたアセンブリではどうしますか?あなたはあなたが作業する必要があるテーブルを読んでいますか?それをもっと詳しく説明する必要があります。 –

答えて

0

でいただきありがとうございます、2 EFコンテキストを使用することはできません、あなたは必要ありません。各DbContextに所有するSqlTransactionを渡すことができるので、EF6を使用した分散トランザクションを実行することができます - https://msdn.microsoft.com/en-us/library/dn456843(v=vs.113).aspx「既存のトランザクションをコンテキストに渡す」見出し

+0

Thx、私はあなたの助言に従って作業を開始し、私はいくつかの進歩を遂げました。 ctx1 c1 = new ctx1(); ctx2 c2 =新しいctx2(c1.Database.Connection、false); "新しいUnintentionalCodeFirstExceptionを()スロー;" = のvar lCtasQry (c2.plan_de_cuentasにおけるpからは、pを選択 )が、私は例外を受け取ります は、私は私が方法でその情報を入れていたことを読んで 保護されたオーバーライドボイドOnModelCreating(DbModelBuilderのModelBuilder) { スロー新しいUnintentionalCodeFirstException(); } しかし、私はそれを行う方法を知らない –

+0

新しい質問をする – ErikEJ

関連する問題