首页 > 其他 > 详细

eventFlow 系列 <一>

时间:2019-09-24 13:34:39      阅读:53      评论:0      收藏:0      [点我收藏+]

 

1 var exampleId = ExampleId.New;
3 var commandBus = resolver.Resolve<ICommandBus>();
4 var commond=new ExampleCommand(exampleId, 42,88) 5 var executionResult = await commandBus.PublishAsync(commond,CancellationToken.None) .ConfigureAwait(false); 6 var queryProcessor = resolver.Resolve<IQueryProcessor>(); var exampleReadModel = await queryProcessor.ProcessAsync( new ReadModelByIdQuery<ExampleReadModel>(exampleId),CancellationToken.None) .ConfigureAwait(false)

这是最简单的测试。先是创建一个命令。创建命令没执行什么关键代码,命令有个身份,唯一标识,这个标识是exampleId

commandBus发布这个命令,发布命令,主要是执行这个命令。这下面就是框架代码了。
 await ExecuteCommandAsync(command, cancellationToken).ConfigureAwait(false);

这个方法中 AggregateStore.cs

await _aggregateStore.UpdateAsync<TAggregate, TIdentity, TResult>
var domainEvents = await aggregate.CommitAsync(
                        _eventStore,
                        _snapshotStore,
                        sourceId,
                        cancellationToken)
                        .ConfigureAwait(false);

AggregateRoot.cs

await eventStore.StoreAsync<TAggregate, TIdentity>()

在这个方法中,会有选择保存在内存,SQLserver,Mongo中等地方。

保存完了,以后使用的时候,读取文件或者数据库即可。


这会找到这个命令的Controller.

 

eventFlow 系列 <一>

原文:https://www.cnblogs.com/qgbo/p/11577218.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!