如何使用具有活动事务的连接获取NHibernate会话

时间:2013-02-01 14:45:20

标签: nhibernate transactions

我们在NHibernate中使用我们作为域模型的DAL。 在批量处理结束时,我想使用NHibernate DAL执行一些操作

类似的东西:

public void BulkUpdate()
{
   var connection =  new sqlConnection(“connectonstring”);
   var transaction = connection.BeginTransaction();
   // Do Bulk Stuff
   var session = SessionFactory.OpenSession(connection);
   var result = session.Query<DomainClass>();
   // Do Stuff with Result
   transaction.Commit();
   connection.Close();     
}

NHibernate的读取尝试失败,因为它尝试使用没有事务集的命令对象。但我不知道如何将事务对象传递给它。

任何Nhibernate大师都在那里?

1 个答案:

答案 0 :(得分:3)

我认为这种方法可行,但现在没有时间对其进行验证:

  • 首先,从您的连接字符串创建一个NHibernate会话,如图所示in this SO answer
  • 按以下方式打开交易:session.BeginTransaction()
  • 使用session.Connection属性执行批量处理
  • 使用session完成处理并根据需要提交