Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fluent nhibernate 如何避免使用FluentNHibernate配置将域层暴露给基础架构层?_Fluent Nhibernate - Fatal编程技术网

Fluent nhibernate 如何避免使用FluentNHibernate配置将域层暴露给基础架构层?

Fluent nhibernate 如何避免使用FluentNHibernate配置将域层暴露给基础架构层?,fluent-nhibernate,Fluent Nhibernate,我的NHibernateUtil类位于我的应用程序的基础架构层,但我遇到了以下问题: ... .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Computer>()); 。。。 .Mappings(m=>m.FluentMappings.AddFromAssemblyOf()); 为了实现这一点,我必须将域层公开给基础结构层。由于映射(例如ComputerMapping),域层还可以访问基础结构层,这会导致循环依赖 如何让

我的NHibernateUtil类位于我的应用程序的基础架构层,但我遇到了以下问题:

...
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Computer>());
。。。
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf());
为了实现这一点,我必须将域层公开给基础结构层。由于映射(例如ComputerMapping),域层还可以访问基础结构层,这会导致循环依赖


如何让configure FluentNHibernate访问正确的程序集而不让基础结构层访问域层?

我不明白为什么需要在域层中引用基础结构层。通常,您应该这样构造它:

  • 包含定义这些类上的操作的域类和接口的域

  • 数据访问层引用域层并实现给定提供程序的接口(例如SQL qith NHibernate)。在这里,您放置了fluent nhibernate映射类和配置,允许您构建接口实现中使用的
    ISessionFactory
    。您只公开这些接口的实现,其他一切都是私有的

  • 引用前两层的主应用程序。在这里,您可以使用对象容器来选择域接口的正确实现


如果以后您决定使用一些其他技术来访问数据,例如Entity Framework,您需要使用域接口的不同实现编写另一个数据访问层,并通过仅修改对象容器(DI)代码将其插入主应用程序。

感谢您的快速响应,那么,您将映射放在基础架构层,那么基础架构层可以访问域吗?