I'm using Castle NHibernate integration and Automatic Transaction facility to achieve this functionality. Maybe you can take a look at those. http://castleproject.org/container/facilities/trunk/atm/index.html
On Thu, Jan 15, 2009 at 9:56 AM, Stuart Campbell <[email protected] > wrote: > Thanks Luis, > > The thing is, I don't really want to have a dependency on MSDTC, which I > believe would be the case if I used TransactionScope. After all, my > transactions aren't distributed - just nested. > > I'm hoping there is an alternative to this. > > cheers > > Stu > > > > On Thu, Jan 15, 2009 at 11:35 AM, Luis Abreu <[email protected]> wrote: > >> I think that using a TransactionScope object to wrap all your method >> calls should work in this case. >> >> >> >> *From:* [email protected] [mailto:[email protected]] *On >> Behalf Of *Stuart Campbell >> *Sent:* quinta-feira, 15 de Janeiro de 2009 10:29 >> *To:* [email protected] >> *Subject:* [nhusers] Nested transactions >> >> >> >> What's the recommended way to support nested transactions in NH? >> >> Basically, I'm using session-per-request and my repository methods wrap >> all calls in a transaction like this... >> >> var tran = session.BeginTransaction(); >> try >> { >> // do work here >> >> tran.Commit(); >> } >> catch >> { >> tran.Rollback(); >> throw; >> } >> >> But I also want multiple repository calls to be contained in a logical >> "business" transaction, like this (note that all repositories expose >> BeginTransaction which returns an ITransaction wrapper): >> >> var outerTran = accountRepository.BeginTransaction(); >> try >> { >> accountRepository.Save(account); >> >> notificationRepository.Save(notification); >> >> outerTran.Commit(); >> } >> catch >> { >> outerTran.Rollback(); >> throw; >> } >> >> This doesn't work because outerTran reports that it has been committed as >> soon as the first Save() operation commits. I'm obviously missing something >> fundamental here and would be grateful if someone could point me in the >> right direction. >> >> If I have some time today I'll try looking through the NH code to try and >> understand the internals better. In the meantime any pointers would be >> welcome. >> >> thanks >> >> Stu >> >> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
