亜音速2.1(リポジトリパターン)を使用するときにUnitofworkパターンを実装する方法は?

StackOverflow https://stackoverflow.com/questions/2887079

質問

私は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();
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top