Fluent nhibernate 如何避免使用FluentNHibernate配置将域层暴露给基础架构层?
我的NHibernateUtil类位于我的应用程序的基础架构层,但我遇到了以下问题:Fluent nhibernate 如何避免使用FluentNHibernate配置将域层暴露给基础架构层?,fluent-nhibernate,Fluent Nhibernate,我的NHibernateUtil类位于我的应用程序的基础架构层,但我遇到了以下问题: ... .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Computer>()); 。。。 .Mappings(m=>m.FluentMappings.AddFromAssemblyOf()); 为了实现这一点,我必须将域层公开给基础结构层。由于映射(例如ComputerMapping),域层还可以访问基础结构层,这会导致循环依赖 如何让
...
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Computer>());
。。。
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf());
为了实现这一点,我必须将域层公开给基础结构层。由于映射(例如ComputerMapping),域层还可以访问基础结构层,这会导致循环依赖
如何让configure FluentNHibernate访问正确的程序集而不让基础结构层访问域层?我不明白为什么需要在域层中引用基础结构层。通常,您应该这样构造它:
- 包含定义这些类上的操作的域类和接口的域
- 数据访问层引用域层并实现给定提供程序的接口(例如SQL qith NHibernate)。在这里,您放置了fluent nhibernate映射类和配置,允许您构建接口实现中使用的
。您只公开这些接口的实现,其他一切都是私有的ISessionFactory
- 引用前两层的主应用程序。在这里,您可以使用对象容器来选择域接口的正确实现
如果以后您决定使用一些其他技术来访问数据,例如Entity Framework,您需要使用域接口的不同实现编写另一个数据访问层,并通过仅修改对象容器(DI)代码将其插入主应用程序。感谢您的快速响应,那么,您将映射放在基础架构层,那么基础架构层可以访问域吗?