gpt4 book ai didi

c# - 帮助在提供商场景中选择我的 DDD 聚合根?

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:05 25 4
gpt4 key购买 nike

我对 DDD 还很陌生,已经阅读了一些关于这个概念的文章,所以如果我缺乏一些知识,请原谅。我很好奇这个例子应该如何用聚合根建模。

基础是:有一个 Employee、一个 Meeting 和 Comments。每个员工都可以参加他们可以发表评论的 session 。根据员工和 session 跟踪评论。每个 session 和员工都有唯一的标识符。

如果我想显示 session 的所有评论,而不考虑员工,我是否必须首先获取属于该 session 的所有员工,然后对评论进行排序以仅显示与 session ID 匹配的评论?

session 不能成为我的聚合根,因为当我需要员工列表时,我当然不想通过 session 来获得它。也许每个人都是聚合根,但在 Employee 之外,评论实际上没有意义。我正在寻找有关如何更好地处理这种情况的想法。

// Datebase tables
Meeting
Employee
Comment - Contain EmployeeId and MeetingId


public class Employee
{
public List<Comment> Comments { get; set; }
}

public class Meeting
{
public List<Employees> Employees { get; set; }
}

在此先感谢您的帮助。

最佳答案

Employee 和 Meeting 是您的聚合根,您必须为聚合根创建一个存储库。

评论可以是 session 的属性。我认为从员工那里检索与 session 无关的评论是没有用的?当您不知道它的“上下文”(== session )时,我认为评论没有任何意义?

这样做,您的类模型将与 Chris Marisic 提出的非常相似。

除了这些类之外,您还可以拥有以下存储库:

public class EmployeeRepository
{
public IList<Employee> GetAll() {}
}

public class MeetingRepository
{
public IList<Meeting> GetAll(){}

public IList<Meeting> GetMeetingsAttendedByEmployee( Employee emp ){}
}

关于c# - 帮助在提供商场景中选择我的 DDD 聚合根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com