C# NHibernate的工作单元/存储库经理?

C# NHibernate的工作单元/存储库经理?,c#,asp.net,asp.net-mvc,nhibernate,C#,Asp.net,Asp.net Mvc,Nhibernate,我现在是一名.NET开发人员,但在过去的一年里,我一直在自己的项目中与Rails和Merb合作,所以当涉及到MVC和ORM时,我更习惯于使用它们以及ActiveRecord和DataMapper 我开始学习ASP.NET MVC,我喜欢我在NHibernate和Fluent NHibernate中看到的东西,但是我想了解更多关于如何最好地处理工作单元或存储库类型模型的信息 我想要一些在建筑上不是很大的东西。我看过一些像S#arp架构这样的项目,但它看起来有些臃肿 我真正想要的是一种管理连接和处理

我现在是一名.NET开发人员,但在过去的一年里,我一直在自己的项目中与Rails和Merb合作,所以当涉及到MVC和ORM时,我更习惯于使用它们以及ActiveRecord和DataMapper

我开始学习ASP.NET MVC,我喜欢我在NHibernate和Fluent NHibernate中看到的东西,但是我想了解更多关于如何最好地处理工作单元或存储库类型模型的信息

我想要一些在建筑上不是很大的东西。我看过一些像S#arp架构这样的项目,但它看起来有些臃肿


我真正想要的是一种管理连接和处理数据检索/存储的简单方法。一个简单的指南或示例应用程序就足够了。

有几个组件可用于轻松的工作单元实现:

  • -NHB项目的一部分
  • -工作单元实现,文档在示例代码中,在博客和web上
  • -来自主要nhibernate开发商Fabio Maulo,以及
至于样本项目,则是Burrow项目。我现在正在使用Burrow进行一个项目,它对我来说运行良好。虽然我没有使用它们,但是有一些存储库类使用工作单元会话管理,因此使用它非常容易。我也使用流畅的NHibernate,很容易让所有的东西一起工作

我真正想要的是一种管理连接和处理数据检索/存储的简单方法

是的,NHibernate可能非常冗长。我研究了工作单元和存储库“模式”(它们实际上是“外观”,但这是另一个故事),并编写了它们的非常简单的实现。它们都极大地简化了NHibernate,但我建议使用工作单元实现,因为我觉得它通常比存储库更高效、更易于使用。下载并尝试一下:


您可能还对它感兴趣,它在NHibernate之上实现了ActiveRecord模式,在Rails的ActiveRecord上受到了松散的启发。

引用“Fabio Maulo,一个NHibernate开发人员…”,我想说,他是NHibernate开发人员:-)无论如何,回答得不错。从提交日志和邮件列表来看,我当然不能否认这一点。事实上,我最初是用“the”来打的,应该给予应有的信任。NHibernate-Burrow链接已断开。您使用的是IOC容器吗?我知道Castle通过扩展对NHibernate有一些支持。了解您正在使用的工具将非常有帮助,因为答案会发生变化。另外,如果您试图支持跨多个页面请求的单个会话,也可以这样做。嗨,James,谢谢您的示例。我看了你的密码。你的工作单位不考虑懒散的工作。如果在初始加载过程之后仍然需要会话,该怎么办?在你的情况下,到那时就可以处理了。塞巴斯蒂安,谢谢你审阅我的代码。我的UOO实现实际上考虑了懒惰加载,并且非常兼容。我建议,只要你需要,会议就一直开放,因为开放不会受到惩罚。如果出于任何原因需要关闭会话,只需打开一个新会话,延迟加载就可以正常工作。