2010-02-27 67 views
0

我在我的应用程序的基础架构层我NHibernateUtil类,但是我到达的问题,此行:如何避免使用FluentNHibernate配置将域层公开到基础结构层?

... 
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Computer>()); 

对于这个工作,我不得不暴露领域层到基础设施层。由于映射(例如ComputerMapping),域层也可以访问基础结构层,并且这会导致循环依赖。

如何告诉配置FluentNHibernate访问正确的程序集而没有将基础结构层访问权授予域层?

回答

1

我不明白你为什么需要引用域层中的基础设施层。通常你应该构建这样的:

  • 含有域域类和这些类

  • 数据访问层引用领域层和执行对于给定的提供者接口(例如定义操作接口SQL qith NHibernate)。在这里,您将流畅的nhibernate映射类和配置允许您构造在接口的实现中使用的ISessionFactory。你只公开这些接口的实现,其他的都是私有的。

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

如果以后你决定使用其他一些技术来访问您的数据,如实体框架,例如,你需要用不同的实现域接口的另写数据访问层和由主应用程序插只修改对象容器(DI)代码。

+0

感谢您的快速响应,因此您将映射放置在基础架构层中,那么基础架构层是否可以访问域? – Laz 2010-02-27 17:33:04