我正在开发一个使用代码史密斯Nhibernate模板的多线程应用程序,我读到我必须使用一个会话或每个线程,问题是我不知道如何从CodeSmith生成的类中获得一个新的会话……
有没有人能给我一个非常非常简单的例子,告诉我如何在2个不同的线程中使用CodeSmith Nhibernate?或者至少为我提供创建新会话的代码?
提前谢谢。
发布于 2010-12-23 03:16:14
CodeSmith生成的管理器对象已经是线程安全的,并确保每个线程都将获得它自己的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();
}https://stackoverflow.com/questions/4497027
复制相似问题