私は異なるデータベースの2つの異なるエンティティを持っています。 私のプロセスでは、両方のデータベースを操作する必要があり、プロセス全体がトランザクションでなければなりません。 私はTransactionScopeを試しました。単一のエンティティでうまく動作します。Entity Framework 4の2つの異なるエンティティのトランザクション
var entity1 = clsProject.GetEntity1();
var entity2 = clsProject.GetEntity2();
System.Transactions.TransactionScope tranScope = new System.Transactions.TransactionScope();
entity1.Connection.Open();
entity2.Connection.Open();
//Do operations
entity1.SaveChanges(false);
entity2.SaveChanges(false);
tranScope.Complete();
entity1.AcceptAllChanges();
entity2.AcceptAllChanges();
ただし、次の行でエラーが発生します。entity2.Connection.Open(); エラーメッセージ:基になるプロバイダがOpenで失敗しました。 内部例外:パートナートランザクションマネージャは、リモート/ネットワークトランザクションのサポートを無効にしています。 (例外:HRESULT:0x8004D025)
あなたのアイデアをお寄せください。事前に
おかげで、
ネアシュGoradara
既にオンになっていますが、機能しません。同じエラーです。 –
テストするには、セキュリティタブで「認証不要」を試してください。 –
トランザクションスコープをusingステートメントにラップします。これも試してみてください。 –