独自のトランザクションプロバイダーを実装するための最適なオプション
-
05-07-2019 - |
質問
トランザクションをサポートしていないリモートのサードパーティ製ストレージソリューションを使用しています。
このソリューションの.NETに独自の擬似ACIDityを実装するには、エラーのないエンティティの挿入/更新を書き換え/削除して、他の挿入/更新はトランザクションコンテキスト内で失敗します。
System.Transactions
名前空間と何らかの形で統合することは有益ですか、それとも簡単ですか(これについての恐怖や成功談はありますか?私がやろうとしていることの一般的な考えと互換性がありますか?)または独自のトランザクションクラスとインターフェイスを作成する必要がありますか?
編集:MSDNでリソースマネージャーの実装を見つけました System.Transactions
と統合するための方法はありますか?または、このパターンでカスタムのものをモデル化するだけですか?
編集:Hibernateのドキュメントを読んでください。これはまさに私が望むパターンです。 NHibernateをダウンロードしてすべてのSQLコードを削除するか、その基本クラスとインターフェイスを使用してカスタムCRUDコードを実装するだけですか、それともSQLに非常に依存しますか?私はすでに、ドキュメントに準拠するためにメソッドの一部をほぼ書き直していることに気付きました。
解決
;-)編集を見たときに、まさにそのリンクを追加していました。
おそらく、最初にそのオプションを検討します。拡張可能なフレームワークが利用可能な場合はいつでも、自分でフレームワークを作成することをheする必要があります。
他のヒント
はい、リソースマネージャーを実装する必要があります。 System.Transactionサポートを取得するのは簡単なことです。これにより、開発者は、たとえば同じ作業単位で、リソースとOracleの更新をコミットできます。ライブラリをビルドしてリソースマネージャとする場合、無料で入手できます。