为了账号安全,请及时绑定邮箱和手机立即绑定

聚合上的C#DDD模式查询

聚合上的C#DDD模式查询

C#
犯罪嫌疑人X 2021-05-17 12:15:25
我是DDD的新手,请多多包涵。场景汇总A和汇总BA通过聚合B上的RelationId与B相关联(因此将是B.A_Id。现在,我必须创建B,但是有一条规则是,如果B.SalesDate离A不到7个日历日,则不能创建B .ReleaseDate。我的问题是在聚合B上的CommandHandler上,我可以对聚合A进行查询以获取A.ReleaseDate,这样我就可以检查提供的B.SalesDate是否不超过7个日历日吗?在聚合B上使用的CommandHandler代码的一部分:public async Task Handle(AddBCommand command, CancellationToken cancellationToken)        {            if (!command.IsValid())            {                NotifyValidationErrors(command);                return;            }// this is where I do a query on Aggregate A to get details using the Id (which is A.Id from Aggregate A) selected on UI            var aggregateADetails = await A_Repository.GetFirstAsync(x => x.Id == command.Id);            //if (isCloserthan7Days.)            //{            //    NotifyError(string.Empty, "B.SalesDate is 7 days closer than A.ReleaseDate");            //    return;            //}因此,在此CommandHandler上,我实例化了2个存储库,其中1个存储库用于B,1个存储库用于A在查询中使用。这样会违反DDD规则吗?对不起,还不清楚。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信