nhibernate - NHibernate体系结构?

标签 nhibernate hibernate persistence

我计划通过使用nhibernate作为ORM来实现我的下一个项目(asp.net MVC)。由于我没有nhibernate的经验,所以我想知道如何组织不同项目之间的依赖关系。
我已经看到这样的建议方法:


UI取决于模型,存储库和NHibernate
存储库取决于Model和Nhibernate



----- UI -----------------------------
| | |
| | |
NHibernate型



问题是我不希望UI代码直接与nhibernate进行交互,所以我在想这样的事情:


用户界面取决于模型和外观
外观取决于Model和Nhibernate




----- UI --------
| |
| |
模型

Facade实际上将具有存储库以及封装nhibernate对象。

听起来合理吗?是否有关于首选架构的指南?

谢谢

最佳答案

这通常是我在应用程序中所做的:


Foo.Core


包含域对象,业务逻辑等
没有引用任何与基础架构相关的程序集,例如Web服务,ESB或数据访问
有些人还在这里放置存储库接口,但这是一种设计选择。它使您可以在此处将域服务与存储库交互,但仍与NHibernate分离

持久性


引用NHibernate
存储库实现
用于ASP.NET的工作单元HttpModule(在Web应用程序中帮助控制NHibernate的会话生命周期)

Foo.Web


同时引用Foo.Core和Foo.Persistence
HttpModule参考来控制NHibernate会话



Foo.Web从不直接与NHibernate交互……它总是通过存储库进行。使用IoC容器,您可以只请求IRepository,而不必关心实现是什么。

关于nhibernate - NHibernate体系结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/265237/

相关文章:

sql-server - 如何让 NHibernate 停止使用 nvarchar(4000) 来插入参数字符串?

sql-server - SQL 查询改进 - 使用 max 和 groupby 选择

Java:使用列表从持久性查询语言检索结果

ios - 如何知道 Realm 查询(RLMResults)操作何时完成?

java - 如何解决Maven依赖项目上的org.springframework.beans.factory.NoSuchBeanDefinitionException?

c# - .NET Core DI 处理的 NHibernate SessionFactory

c# - 在 Fluent NHibernate 中创建数据库期间列名发生变化

java - hibernate执行更新索引越界

java - hibernate UUID 作为 UUID 类型

java - 在 Hibernate JPA2 上使用唯一约束