我需要一些建议,我们如何在表示层中解耦 nHibernate 依赖项。目前我们有一个三层 C# winforms 应用程序,由以下层组成(简化);
- 用户界面 (UI)
- 业务逻辑 (BAL)
- 数据访问逻辑 (DAL)
我们正在将此应用程序迁移到 ORM (nHibernate),理想情况下希望只有 DAL 引用 nHibernate。我们还希望使用 nHibernate 中包含的“工作单元”功能,采用“会话每个会话”方法。
为了实现这一点,我们需要在 UI 中创建并打开一个会话,将会话通过 BAL 传递给 DAL,但是如果不在 BAL 和 DAL 中创建对 nHibernate 的依赖项,我们就无法实现这一点。
任何意见,将不胜感激。我们应该如何构建架构以避免在 UI 和 BAL 中对 nHibernate 的任何引用。有任何想法吗?
我还必须补充一点,我们也不希望 UI 引用 DAL。
UI => BAL => DAL