2009-07-17 60 views
2

作为一个新手NHibernate的,我发现会议的创建是混乱一点点。为什么nhibernate没有像UoW这样的合适的会话管理器?

为什么不NHibernate的船喜欢的东西(我相信)什么单位工作呢?

或者是有什么建成UofW更是一个插件/偏好? (上下文:带有SQL服务器的ASP.NET MVC Web应用程序)。

注:我是新来NHibernate的,与MS如何做的事情泡汤了。我会喜欢它,如果与产品下载等

回答

4

会话是一种工作单位的,也标识映射发货,一般要求的东西。您可以在其上创建自己的工作单元抽象。不同的应用程序也需要不同类型的作品单元以及不同的编程人员。

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

0

我同意Paco,虽然在一个web应用程序中,这可能是一个更多的工作。

我认为真正的问题是,我们大多数人想从NHibernate的一个直接依赖孤立我们的上游代码,因此我们不想直接针对会话中工作。

一旦你换你的头周围NHibernate的这个抽象变得很简单,但但它是一个有点困难,在你想了解NHibernate的首次同一时间来解决这个抽象你的头。

2

如果你还没有找到它......有工作组件的Web应用程序的一个单位,是NHibernate的的Contrib项目的一部分,称为NHibernate Burrow。它具有相当的灵活性,并支持简短(每次请求会话)和长时间(跨越多个请求的会话)对话。

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