NHibernate交易最佳实践

Ram*_*iro 32 nhibernate transactions

我已经阅读了一段时间的Nhibernate,并一直试图将它用于我正在实施的网站.我阅读了Billy McCafferty关于NHibernate最佳实践的文章,但我没有看到任何关于哪里是处理交易的最佳位置的迹象.

我想将该代码放在数据访问对象(DAO)中,但后来我不知道如何处理使用多个DAO的情况.在NHibernate应用程序中放置事务代码的最佳位置是什么?

Lia*_* Wu 11

基于Ayende,您可能需要为所有人显式添加事务,甚至搜索.请在此处查看:http: //nhprof.com/Learn/Alerts/DoNotUseImplicitTransactions


Sea*_*ter 10

这真的取决于你的环境.例如,我们在ASP.Net站点上使用Open-Session-In-View(Java链接,但模式在.Net中是相同的)模式,并使用HttpModule来控制会话和事务.HttpModule打开会话并在BeginRequest事件中启动事务,然后提交事务并在EndRequest事件中关闭会话.

不同的环境和通信模式将导致不同的会话/事务管理策略.

NHibernate用户组以及Web 上的各种策略都有很多讨论.