ASP.NET MVC Web层是否应该引用nHibernate .dll?

问题描述

| 在所有关于关注点分离的讨论中,我似乎总是遇到我的ASP.NET MVC应用程序必须为依赖注入而引用许多与nhibernate和fluent nhibernate相关的库的问题。 这是典型的吗?我应该以其他方式解决这个问题吗?我试图将涉及nHibernate的所有逻辑放到
Data
项目中,但是当我必须连接
ISessionFactory
ISession
时,我必须在我的Web层中访问它们。有没有人找到解决方法?     

解决方法

老实说,这不是一件大事。我知道您想将所有与数据相关的依赖关系都保留在UI层之外,但是如果您想正确使用NHibernate,并且每个请求都有一个ISession,则必须在global.asax的Application_Start中进行设置。当然,您可以将所有内容包装在自己的界面中并隐藏对NHibernate的任何依赖关系,但这实在是太过分了。不要试图隐藏您正在使用的内容,您打算多久切换一次ORM?     ,我看不出有什么问题,但很多人都知道。 真的取决于你。     ,是的,通常您必须使用“ main”应用程序中的任意一个来访问所有从属库,以便将所有内容组合在一起。