I'm missing something here: the article on implicit transactions explicitly 
says (emphasis mine):

I strongly suggest that you use code similar to that shown above (or use 
another approach to transactions, *such as TransactionScope*, or Castle's 
Automatic Transaction Management) in order to handle transactions correctly.

So why is it necessary to use an NH transaction when there's already an 
ambient TransactionScope available?

With NHibernate 3.0, the only problem I've seen with this approach is that 
Auto Flushing doesn't respsect the ambient transaction (which *may* be a 
bug: SessionImpl.TransactionInProgress does not consider ambient 
transactions, but its close relative ConnectionManager.IsInActiveTransaction 
does).

Reply via email to