0

コード スミス Nhibernate テンプレートを使用してマルチスレッド アプリケーションを開発しています。セッションまたはすべてのスレッドを使用する必要があることを読みました。問題は、CodeSmith によって生成されたクラスから新しいセッションを取得する方法がわからないことです ...

2 つの異なるスレッドで CodeSmith Nhibernate を使用する方法の非常に簡単な例を提供してくれる人はいますか? または、少なくとも新しいセッションを作成するためのコードを提供してください。

前もって感謝します。

4

1 に答える 1

2

CodeSmith によって生成された Manager オブジェクトは、既にスレッド セーフであり、各スレッドが独自の NHibernate セッション オブジェクトを取得することを保証します。スレッドが適切に開閉されるようにするには、常にマネージャーを破棄することが非常に重要です。次に例を示します。

IManagerFactory managerFactory = new ManagerFactory();
using (ICategoryManager categoryManager = managerFactory.GetCategoryManager())
{
    Category categoryA = new Category();
    categoryA.Id = "TEST1";
    categoryA.Name = "Test 1";
    categoryA.Descn = "Hello world!";

    categoryManager.Save(categoryA);
    categoryManager.Session.CommitChanges();
}
于 2010-12-22T19:16:13.710 に答える