亜音速2.1(リポジトリパターン)を使用するときにUnitofworkパターンを実装する方法は?
-
04-10-2019 - |
質問
私はASP.NET MVC Applicationに亜音波リポジトリパターン(2.1)を使用しています。私のアプリケーションでは、CategoryRepository、BlogrePositoryなどの多くのリポジトリがあります。 DB.Select().From()...ExecuteReader()
そして、それらの読者からドメインオブジェクトをロードします。
コントローラーアクションでは、これらのリポジトリから複数の呼び出しを行います。
List<IBlog> blogs=_blogRepository.GetHottestBlogs();
List<ICategory> categories=_categoryRepository.GetAll();
これに任意のユニットワークパターンを実装する必要がありますか?。 TransactionScope
バッチの更新には十分ですか、それとも使用する必要がありますか SharedDbConnectionScope
パフォーマンスを向上させるには?
解決
Subsonicを使用すると、TransactionScopeとSharedDBConnectionScopeを組み合わせる必要があります。それ以外の場合、すべてのコマンドは、実行後に処分される独自の専用接続を使用します。
SharedDBConnectionScope内のすべての亜音速クエリは同じ接続を共有するため、Transactioscopeを使用できます。
そして、TransactionsCopeの前にSharedDBConnectionScopeを使用する必要があります。そうしないと、一部のプロバイダーはトランザクションを実行していることを検出しません。
using (new SharedDbConnectionScope())
{
using (TransactionScope ts = new TransactionScope()
{
// Do some sh*i ;)
ts.Complete();
}
}
所属していません StackOverflow