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

如何使用具有活动事务的连接获取NHibernate会话,nhibernate,transactions,Nhibernate,Transactions,我们使用NHibernate作为域模型的DAL。 在批量处理结束时,我想使用NHibernate DAL执行一些操作 比如: public void BulkUpdate() { var connection = new sqlConnection(“connectonstring”); var transaction = connection.BeginTransaction(); // Do Bulk Stuff var session = SessionFacto

我们使用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();     
}
public更新()
{
var connection=newsqlconnection(“connectonstring”);
var transaction=connection.BeginTransaction();
//做散装的东西
var session=SessionFactory.OpenSession(连接);
var result=session.Query();
//用结果做事
Commit();
connection.Close();
}
NHibernate的读取尝试失败,因为它尝试使用没有事务集的命令对象。但我不知道如何将事务对象传递给它


有Nhibernate大师吗?

我认为这种方法可能有效,但目前没有时间验证:

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

你的方法是正确的。我用将事务传播到用于批量处理的SQL命令所需的步骤更新了答案。再次感谢!