我是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
提交
取消