【发布时间】:2012-02-13 20:07:15
【问题描述】:
我目前正在 Visual Studio 中开发一个解决方案,我将在 Windows azure 上部署该解决方案。该解决方案包含一个 MVC3 Web 角色,其中表示来自 SQL Server 的数据。 我已经设置了 Ninject 和 Fluent NHibernate 来将视图与数据库和具体实现分离。
我现在想做的是将所有数据访问逻辑(即 NHibernate 以及用于数据访问的存储库)放入一个单独的 c# 项目中,以便我可以将该项目用于 MVC3 项目和未来SOA 项目。
任何想法我可以如何实现这一目标?我想出了如何使用“仅代码”类来做到这一点,但是在使用 hibernate 时会出现一些问题。我猜它与 global.asx 中为每个 Web 请求创建的 ISession 对象有关。
任何关于简单实现、场景或操作方法的提示都会非常有帮助。如果需要,我也可以发布代码 - 让我知道详细的部分;-)
问候, 马丁
【问题讨论】:
-
正如我在很多其他时候所做的那样,我建议采用分层方法,其中只有 DAL 知道底层 ORM 和数据库技术。在这里查看我的答案:stackoverflow.com/a/7474357/559144 如果你想使用 NHibernate,它基本上保持不变,除了用 NH 替换 EF 并且如果你需要处理 Session 你可以有一个服务层,它将逻辑和服务器封装到 MVC 和 SOA 项目条目指向业务逻辑。
标签: c# asp.net asp.net-mvc-3 nhibernate fluent-nhibernate