我在我的窗口应用程序中使用 Spring .Net 和 Fluent NHibernate,并且我正在使用多个线程。我在一些博客和问题中读到每个线程只能有一个会话,我正在使用 HibernateDaoSupport 和 CurrentSession 来做到这一点:
public class DaoBase<T> : HibernateDaoSupport, IDaoBase<T>
{
protected ISession CurrentSession
{
get { return SessionFactoryUtils.GetSession(HibernateTemplate.SessionFactory, true); }
}
}
但是,我正在测试此功能,并且必须表明每个线程的会话是不同的会话。我该怎么做?
Obs:经过一番研究,我发现通过nhibernate会话获得的对象,不能在另一个会话中更改,例如,无法在“会话1”中找到对象,并在“会话2”中对同一对象进行更新. 但是,在我的测试中,我得到了第一个线程的对象并在第二个线程中更新了它,这是有效的。有什么问题?