我以前在桌面客户端应用程序中使用TransactionScope来回滚不完整的多步事务。但这种方法似乎不适用于Web应用程序。
请问是否有任何建议,可以确保如果整个过程未完成,则跨越几个页面的多个步骤可以被回滚?(例如,他们的浏览器崩溃或他们在中途关闭浏览器)
当然,我可以将内容写入某些临时表,然后在单个事务中将最终记录传输到真实表,但这会存在竞争条件的风险。我想开始一个事务,提供几个页面,每个页面向表中写入事务的一部分,然后通过提交完成事务,如果事务没有完成,则在会话结束时回滚它。
或者我考虑得不对? 有什么建议吗?
由于我正在使用MVC 3、EF 4.1和Ninject,我不确定这会对解决方案产生什么影响,但我想包括这些信息。