1

我是一位经验丰富的 EF 开发人员,但对 NHibernate 很陌生。

在 MVC 4 项目中,EntitySetController ODATA Queryable 支持非常容易实现,并且提供了更多的自由度。

但是,它是微软的stack技术,EF支持最好,当我想到用NHibernate替换EF时,遇到了“所有调用都应该在NHibernate中的一个事务下”。问题。

作为 ayende 的博客:NH Prof Alerts:不鼓励使用隐式事务 http://ayende.com/blog/3775/nh-prof-alerts-use-of-implicit-transactions-is-discouraged

所以问题是如何在使用 EntitySetController 和 NHibernate 时将查询包装在“事务”中?

代码示例和文章等,将不胜感激。非常感谢。

4

1 回答 1

1

EF 隐式处理事务,NHibernate 需要显式代码。所以每个业务操作(例如请求)都会有

using (var tx = session.BeginTransaction())
{
    // Do something
    tx.Commit();
}

周围。您可以在 BeginHandleRequest、EndHandleRequest 之类的方法中将其实现为 Web 应用程序中的 Aspect

于 2013-10-25T11:51:46.590 回答