如何确认NHibernate实际上正在使用SQL事件探查器进行事务?

Kyl*_*est 4 c# nhibernate transactions

我使用以下通用代码来保存实体.

using (ITransaction tx = session.BeginTransaction())
{
    try
    {
       entity.DateModified = DateTime.Now;
       session.SaveOrUpdate(entity);
       session.Flush();
       tx.Commit();
       return entity;
    }
    catch (Exception)
    {
       tx.Rollback();
       throw;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我观看SQL事件探查器时,我没有看到任何BEGIN TRANSACTION被发送到SQL Server.这是正常的,预期的吗?

Mos*_*kie 7

我建议显而易见:确保将Profiler设置为显示交易信息.

在"跟踪属性"对话框 - >"事件选择"选项卡中,有一个用于事务的expando.打开它并检查相应的方框(或只是检查它们全部开启).

另外,仅供参考:我检查了使用NHibernate的应用程序,是的,我在Profiler中跟踪时看到了BEGIN TRANSACTION和COMMIT TRANSACTION调用.