When using TransactionScope only (no NH Transaction), auto-flush does
not work.

Should it?

Looking at SessionImpl.AutoFlushIfRequired in the 3.0 source, it's
obvious why auto-flush doesn't work: the method short-circuits if the
session is not in a _local_transaction. It does not consider
distributed transactions (which in this context include the ambient
TransactionScope transaction).

Compare SessionImpl.TransactionInProgress to
ConnectionManager.IsInActiveTransaction, which does respect
distributed transactions.

Should SessionImpl.TransactionInProgress call the connection manager
method instead of checking this.Transaction.IsActive, or is this
behavior intentional?

Reply via email to