我使用flushmode.never配置会话并手动控制事务:
try
{
session.Transaction.Begin()
// Work
session.Transaction.Commit();
}
catch
{
if (session != null && session.Transaction != null && session.Transaction.IsActive)
{
session.Transaction.Rollback();
}
throw;
}
finally
{
if (session != null && session.IsOpen)
{
if (session.IsDirty())
{
session.Flush();
}
}
}
当我调用session.Flush()时发生数据库错误,我无法进行任何其他查询。