gpt4 book ai didi

c# - 此 DDD 应用程序中有哪些聚合?

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

我从事 ASP.NET 多年,现在正努力追赶 MVC 和 DDD。我理解大多数概念。我正在重新开发一个用于体育网站的网站。它本质上是一个 CRUD 风格的应用程序,但出于学习和灵 active 的目的而希望进行 DDD。已选择不执行 CQRS,因为尽管我可以看到速度优势,但这似乎有些过分。我关注了很多关于 Greg Young 和其他人的信息,但它到了一个阶段,选项几乎是压倒性的,并且忽略了试图解决问题的重点。

我想到的领域对象是:

赛季、赛程、球队、比赛表、比赛、比赛回合、新闻、新闻类别

可能的聚合是:

  • 季节

  • FixtureHomeTeam

  • FixtureAwayTeam
  • FixtureGamesheet
  • FixtureCompetitionRound 列表(可以是联赛和杯赛)
  • 固定装置季节
  • FixtureNews

  • 新闻新闻类别

  • GameSheetFixture

  • 画廊装置

请注意 fixture 和 gamesheet 是双向的,对吗?我知道它会起作用,但有更好的方法吗?我需要自己展示游戏表以及固定装置。否则我可以做 FixtureRepo.GetBySeason(season).[0].Gamesheet 等等。

提前感谢您的任何评论。

最佳答案

My worry is if I want to just get the gamesheets, if I dont get them directly so say something like GameSheetRepo.GetBySeason(season) I will have to do FixtureRepo.GetBySeason and then check to see if a gamesheet exists for each fixture... seems quite ineffiecent doing it that way. But I can't see anyway you can avoid then having bi-directional reference as a GameSheet needs to know its Fixture.. but at the sametime if I have a fixture I want to know if a gamesheet exists sometimes

问题是 - 在您的模型中没有 GameSheet 的 Fixtures 是否有意义?

删除GameSheet时是否应该删除Fixtures?

如果他们不这样做并且应该被删除 - 很可能 GameSheet 是一个聚合根,它包含 Fixtures,你不需要双向关联,因为你永远不会使用没有 GameSheet 的 fixture,Fixtures 被创建/仅通过 GameSheet 修改/删除。

如果 GameSheet 结果是一个聚合根,但您需要显示固定装置列表(那种要求引入双向关联),请不要仅仅因为表示目的而混淆您的模型 - 只需选择获得的 GameSheets任何 Fixture,选择它们,必要时排序并显示。


但是把我刚才说的彻底过滤掉。
在不了解实际领域的情况下很难帮助别人,我可能会完全误解你。

关于c# - 此 DDD 应用程序中有哪些聚合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3054384/

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