为什么';nhibernate是否有合适的会话管理器,如UoW?

为什么';nhibernate是否有合适的会话管理器,如UoW?,nhibernate,Nhibernate,作为nHibernate的新手,我发现会话的创建有点令人困惑 为什么nHibernate不提供类似(我相信)工作单元的功能 或者是否有构建的东西,UofW更像是一个附加组件/首选项?(上下文:带SQL server的ASP.NET MVC web应用程序) 注意:我是nHibernate的新手,对MS的工作方式很着迷。如果产品下载等通常需要附带的东西,我会很喜欢。会话是一种工作单元,也是一个身份图。您可以在其上创建自己的工作单元抽象。不同的应用程序需要不同类型的工作单元,不同的程序员也喜欢不同的

作为nHibernate的新手,我发现会话的创建有点令人困惑

为什么nHibernate不提供类似(我相信)工作单元的功能

或者是否有构建的东西,UofW更像是一个附加组件/首选项?(上下文:带SQL server的ASP.NET MVC web应用程序)


注意:我是nHibernate的新手,对MS的工作方式很着迷。如果产品下载等通常需要附带的东西,我会很喜欢。会话是一种工作单元,也是一个身份图。您可以在其上创建自己的工作单元抽象。不同的应用程序需要不同类型的工作单元,不同的程序员也喜欢不同的实现


创建自己的工作单元实现以抽象会话和事务管理不需要超过50行代码。

我同意Paco,尽管在web应用程序中这可能需要更多的工作

我认为真正的问题是,我们大多数人都希望将上游代码从对NHibernate的直接依赖中分离出来,因此我们不希望直接针对会话工作


一旦你了解了NHibernate,这个抽象就变得非常简单,但是在你第一次尝试了解NHibernate的同时,要了解这个抽象就有点困难了。

如果你还没有找到它的话。。。有一个web应用程序的工作单元组件,它是NHibernate Contrib项目的一部分,名为。它相当灵活,支持短对话(每个请求的会话)和长对话(跨越多个请求的会话)

我以前在ASP.NETMVC中使用过Burrow,它工作得很好,尽管我没有在MVC中尝试过长时间的对话。在它的当前状态下,为了使用它,您需要更新库引用并编译Burrow项目。这是一点额外的工作,但值得