c# - 聚合根和聚合的代码示例

标签 c# domain-driven-design aggregate aggregateroot

我试图了解如何使用聚合根和聚合,但找不到任何具体信息或示例。

例如我有以下三个实体:

  1. 调查
  2. 问题组
  3. 问题

Question 实体不能在没有SurveyQuestionGroup 实体的情况下存在。所有的问题都属于一个问题组,所以我的理解是

QuestionGroup is the Aggregate root of Question

QuestionGroup 也不能不作为调查的一部分而存在,所以

Survey is Aggregate root to QuestionGroup

看起来上面是嵌套聚合根的情况。

Q1.您实际上如何在 C# 中创建聚合根和聚合?这在代码中看起来像什么?您使用内部类还是聚合根包含引用?我找不到任何好的例子。

Q2.更进一步,如何编写嵌套聚合根?

谢谢!

最佳答案

调查是聚合根。

class Survey {
    public IEnumerable<QuestionGroup> QuestionGroups { get ... }
}
class QuestionGroup {
    public IEnumerable<Question> Questions { get ... }
}
class Question {
    ...
}

关于c# - 聚合根和聚合的代码示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13631352/

相关文章:

c# - 如何删除在 asp.net 中动态创建的文本框?

domain-driven-design - DDD : Instantiate Value objects inside Aggregate or pass it as parameter?

visual-studio-2008 - Fluent NHibernate 类作为域类的代码

r - 使用 grep 在 R 中提取并平均每月数据?

c# - 桌面应用程序中的 MongoDB

c# - WPF NotifyIcon不触发MouseEnter事件(显示工具提示时如何更新NotifyIcon View 模型)

c# - 在不缓冲到 RAM 的情况下将元素复制和附加到 XML 文档

domain-driven-design - 领域驱动设计(DDD): Domain Model Granularity and Bounded Context

java - 在域驱动的设计中,为什么要使用“聚合”对象?在设计聚合时将应用哪些关键原则?

group-by - 如何将函数应用于 GroupBy 对象的多个列?