0

我正在使用 code smith 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 回答