【发布时间】:2010-02-01 12:18:51
【问题描述】:
大家好,
从MVC的模型组件中使用NHibernate的步骤是什么?
【问题讨论】:
大家好,
从MVC的模型组件中使用NHibernate的步骤是什么?
【问题讨论】:
ASP.NET MVC 中的 Models 文件夹应该用于视图模型(将复杂对象返回到控制器 => 视图),NHibernate ISessionFactory 应该在 MVC 项目的 global.asax 中的 Application_Start 事件中启动。我建议将映射和实体本身放在不同的项目中,通常使用名为 Mappings/Domain/Persistence 的文件夹组合以保持简单。对于更结构化的解决方案,我会查看 DDD 层,但这对于小型实现来说非常复杂,并且不适用于每个项目。
【讨论】:
在 web 项目的根目录中添加 hibernate.cfg.xml 并添加映射文件没有什么不同,一切顺利
【讨论】:
看看 SharpArchitecture,这是 MVC 与 NHIbernate 的最佳实践。
【讨论】:
我猜,MVC 中 nHibernate 唯一特有的就是你处理会话生命周期的方式。大多数人更喜欢 session-per-request 实现模式,其中为每个 http 请求创建一个新会话(在 nHibernate 中创建会话很便宜)。相比之下,会话工厂在创建方面相当昂贵,应该为整个应用程序创建一次。
...我强烈建议您阅读 Jeffrey Palermo 的 ASP.NET MVC 2 in Action。它专门处理带有 Asp.net MVC 的 nHibernate。
【讨论】: