【发布时间】:2012-08-08 12:19:59
【问题描述】:
我一直在研究 NHibernate for ASP.Net 应用程序 (Webforms) 的事务管理。我发现的大多数文章都倾向于支持按请求事务处理的方法。虽然我了解每个请求的会话,并且完全赞成它。但是,我并不完全理解每个请求的事务背后的原因。
我的应用程序使用版本字段进行并发检查。如果出现问题,如 StaleObjectException 或其他任何问题,则在您调用 Transaction.Commit() 时会引发此问题。我的问题是,如果这是在请求的末尾,你不能轻易知道哪个方法实际上有问题的代码,并且很难从问题中回滚。
例如,在 StaleObjectException 中,通常只需使用更新的数据重新运行该方法。
对此有何想法,以及交易管理的任何实践?根据业务逻辑,我倾向于支持尽可能多的交易。多个事务的问题是实际开始/结束事务的位置。
【问题讨论】:
标签: c# asp.net nhibernate transactions webforms