什么更有意义。让一个服务层引用多个存储库(充当外观),或者让一个存储库将多个相关实体组合在一起。例如,我有以下实体,但我不确定如何构建它们。
实体(POCO)
- 调查
- 调查组
- 调查问题
- 调查回答
Q1. 这些实体中的每一个都应该有自己的存储库吗? SurveyQuestion 不在 SurveyGroup 中就不可能存在,而 SurveyGroup 不在 Survey 中就不可能存在。
Q2.我应该为 Survey、SurveyGroup 和 SurveyQuestion 创建一个存储库,为 SurveyAnswers 创建一个额外的存储库吗?
问题 3. 我是否应该为每一个创建一个单独的存储库并创建一个引用它们的服务类 (SurveyService)?
对于这样的事情,我不确定什么是“最佳实践”。
最佳答案
DDD 中的一般经验法则是为每个 Aggregate Root 创建一个存储库.
在您的示例中,Survey
看起来像是聚合根,因此创建一个 SurveyRepository
。
关于c# - 服务层和存储库关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13633201/