Consider a transaction-per-view model where with an IHttpModule
i open a transaction using a standard ISession
.
Now, i have a page where i want to do some batch operations. Since IStatelessSession
is preferred for batch operations:
- Can i have both
ISession
andIStatelessSession
open at the same time? Is it safe? - If 开发者_StackOverflow1. yes can i use the same
ITransaction
? - If 2. no should i Commit & Close the
ISession
and its associatedITransaction
and then open theIStatelessSession
and a newITransaction
for it? - If 3. yes are there any pitfalls i should be aware of?
any ideas are welcome
- Yes and yes.
- No, each will have its own transaction.
- I would commit the ISession's transaction but leave the ISession open.
I recommend not starting a transaction for every HTTP request. Instead start and commit a transaction on the page when you have changes to commit. This also improves exception handling because you can catch the exception on the page instead of at the end of the request.
精彩评论