0

ねえ、私はユニークで厄介な状況に陥っています。

チームが Enterprise Data Library と Entity Framework を組み合わせて使用​​しているプロジェクトに取り組んでいます。明らかに、これはおそらく推奨されていませんが、私が立ち往生しているものです。Enterprise Data Library を使用して記述されたメソッドを取得し、Entity Framework を使用して記述された別のメソッドも取得し、これらの両方のメソッドを単一のトランザクションでラップしたいと考えています (Microsoft 分散トランザクション サービスは必要ありません)。コードの書き換えを最小限に抑え、2 つのメソッドをそのまま 1 つのトランザクションにラップできるようにしたいと考えています。これは可能ですか?ありがとう。

SQL Server 2008 および .NET 4.0 の使用

4

1 に答える 1

1

TransactionScopeDTC を使用せずに、EF クエリと EntLib クエリを同じ .xml に混在させたいと思います。

良いニュース: それは可能です。EntLib DAAB と EF DbContext にまったく同じ接続文字列を使用すると、EF、EntLib、および SQL Server のバージョンに応じて機能します。

したがって、あなたがしなければならないことは次のとおりです。

  1. 正しいバージョンがあることを確認してください
  2. EF によって変更された接続文字列のバージョンを取得し、それを自分の代わりに使用します。

1 については、次の組み合わせを確認しました。

  • SQL Server は 2008 以前である必要があります
  • EntLib 4.1 + EF 5 が機能しない
  • EntLib 5 + EF 5 の動作

2 の場合、EF によって変更された接続文字列を取得するには、DbContext のインスタンスを使用するコードの実行をデバッグする必要があります。ブレークポイントを設定し、DbContextDatabase.Connection.ConnectionStringプロパティを監視または検査します。これは、接続文字列の EF バージョンです。EF と EntLib の両方に使用すると、DTC を取り除くことができます。

于 2013-04-07T17:20:03.160 に答える