繁体   English   中英

CQRS / ES更新汇总命令

[英]CQRS/ES Update Aggregate Command

目前,我正在替换应用程序的域层,但必须保留现有的MVVM UI。 我们当然想要一个事件存储,但是我在当前的CQRS实现的某些方面苦苦挣扎。

我们有一些复杂的聚合,其中包含多个实体集合和键/值对动态属性。 我们现有的用户界面有一个用于此汇总的大编辑屏幕,我不确定如何为更新构建命令。

可能的解决方案:1)只需在ViewModel中获取聚合,针对域模型执行更新,然后使用命令将其var command = new SaveAggregateCommand(myAggregate); )。 感觉不对,因为如果跨序列化边界(没有自定义序列化)运送内部事件,则内部事件将不会保留。

2)创建一个复杂的命令对象,其中包含更新属性的列表以及每种集合类型的已添加,已更新和已删除的子实体的单独列表。 这对于命令处理程序来说是最容易使用的,但是感觉很草率。

3)创建许多命令,这些命令基本上会反映捕获的域模型事件(在我的方案中最多为38个)。 然后,视图模型将必须保留一个未提交的命令列表,这些列表将在用户按下保存按钮时提交。 像#2一样,这也让人觉得很棘手。

由于此聚合的(必要的)复杂性,这些解决方案都无法令人满意。 我将为此提供一些指导。

因此,答案是:我做错了。 这些命令被分解成更易于管理和更具体的部分,而农民们为此感到高兴。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM