c# - 服务层和存储库关系

标签 c# service repository domain-driven-design repository-pattern

什么更有意义。让一个服务层引用多个存储库(充当外观),或者让一个存储库将多个相关实体组合在一起。例如,我有以下实体,但我不确定如何构建它们。

实体(POCO)

  1. 调查
  2. 调查组
  3. 调查问题
  4. 调查回答

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/

相关文章:

Android Chronometer 自己的实现

java - JPA 存储库 '[X]' 操作上的 key '[Y]' 重复条目 'save'。保存的实体已定义其键

c# - 有人可以破译 timeGetTime() 或 QueryPerformanceCounter/QueryPerformanceFrequency 是否具有较低的开销或/和准确性?

c# - 将 List<T> 添加到另一个 List<T> 的开头

c# - 如何使用小数数据类型

java - 使用 JpaRepository Spring-data-jpa 对子列表总计数进行排序

C# 部署将 VisualSVN 存储库主干托管为 Web 服务器上的 MVC 网站 ('run' 项目)

c# - Roslyn 编译不解析 mscorlib 引用

java - 如何正确地将 double 从服务发送到 Activity

wcf - WCF 服务未公开的类型