站点配置数据存储库应该放在哪里?

时间:2010-11-26 00:22:22

标签: c# asp.net-mvc oop nhibernate dependencies

我们有许多NHibernate实体映射到专门用于配置多租户Web应用程序的数据。这些实体存在于Domain项目中,其余的NHibernate实体。

问题是,所有其他实体都是与业务相关的,其中这些实体与配置相关。将它们放在网上更有意义吗?

我问的原因是因为我遇到了这个问题中概述的问题:How to supply RequestContext data to the constructor of a domain object?,我需要来自域对象构造函数中提供的请求上下文的数据。麻烦的是我不想从Domain项目引用Web项目。如果我直接从Web项目获取配置数据,那么这不是问题。

编辑:“将它们放在域中会更有意义吗?”更正为“在网上?”

1 个答案:

答案 0 :(得分:2)

就个人而言,对于我的项目,我会快速将我的存储库,模型等分解为不同的程序集(不仅仅基于总线/配置/等)。

因此,在存储库需要从RequestContext访问信息的情况下,我将为此配置数据设置一个单独的存储库,并在与业务存储库/对象的单独程序集中设置。

即使在我的域名对象中(以及我们的医疗保健项目中,我们也有几十个),我们会快速找出可以解决问题的主要接缝 - 即专门处理异形数据的组件不需要携带我们整个域的权重,所以我们明确设置了我们希望在配置文件中使用的映射对象,并保持我们的域对象按逻辑函数分解。

简而言之,我不会考虑将配置实体分解为单独的项目/程序集(通常,我们的程序集包括通用存储库接口,我们的具体存储库,NHibernate映射和相关模型)。