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

发布于 2024-11-09 18:26:52 字数 283 浏览 0 评论 0原文

在所有关于关注点分离的讨论中,我似乎一直遇到这样的问题:我的 ASP.NET MVC 应用程序必须引用许多与 nhibernate 和 fluid nhibernate 相关的库来进行依赖注入。

这是典型的吗?我应该有不同的方法来解决这个问题吗?我尝试将涉及 nHibernate 的所有逻辑放入 Data 项目中,但是当我必须连接 ISessionFactoryISession 时,我必须可以在我的 Web 层中访问这些内容。有没有人找到解决方法?

In all of the talk about separation of concerns, I seem to keep running into the problem of my ASP.NET MVC application having to reference a lot of libraries related to nhibernate and fluent nhibernate for my dependency injection.

Is this typical? Is there a different way I am supposed to be solving this? I try to put all of the logic involving nHibernate into a Data project, but when I have to wire up ISessionFactory and ISession, I have to have access to these in my Web Layer. Has anyone found a workaround to this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

偏爱你一生 2024-11-16 18:26:53

老实说,这并不是什么大事,值得担心。我知道您希望将所有与数据相关的依赖项保留在 UI 层之外,但是如果您想在每个请求都有一个 ISession 的情况下正确使用 NHibernate,那么您必须在 global.asax 的 Application_Start 中进行设置。当然,您可能可以将所有内容包装在您自己的界面中并隐藏对 NHibernate 的任何依赖项,但这确实有点过分了。不要试图隐藏您正在使用的内容,您打算多久切换一次 ORM?

Honestly it's not a big thing to worry about. I know you would like to keep all data related dependencies out of your UI layer but if you want to use NHibernate correctly where you have an ISession per request then you have to set it up in your Application_Start of the global.asax. Granted you probably could wrap everything in your own interface and hide any dependency to NHibernate but it's really overkill. Don't try to hide what you're using, how often are you going to switch your ORM?

救赎№ 2024-11-16 18:26:53

我不认为这有什么问题,但很多人都这么认为。

真的取决于你。

I don't see a problem with this but many people do.

Up to you really.

谁与争疯 2024-11-16 18:26:53

是的,无论“主”应用程序是什么,您通常都必须访问所有依赖库,以便将所有部分整合在一起。

yes, you generally will have to access all your dependant libraries in whatever the "main" app is in order to pull all the pieces together.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文