- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
顺便说一句,你如何创建一个流?
I use AppendToStreamAsync directly, is this right or shall I create a stream first then append onto this stream?
I also tried performing some tests but using the methods below I can write events onto EventStore but can't read Events from it.
public async Task AppendEventAsync(IEvent @event)
{
try
{
var eventData = new EventData(@event.EventId,
@event.GetType().AssemblyQualifiedName,
true,
Serializer.Serialize(@event),
Encoding.UTF8.GetBytes("{}"));
var writeResult = await connection.AppendToStreamAsync(
@event.SourceId.ToString(),
@event.AggregateVersion,
eventData);
Console.WriteLine(writeResult);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
public async Task<IEnumerable<IEvent>> ReadEventsAsync(Guid aggregateId)
{
var ret = new List<IEvent>();
StreamEventsSlice currentSlice;
long nextSliceStart = StreamPosition.Start;
do
{
currentSlice = await connection.ReadStreamEventsForwardAsync(aggregateId.ToString(), nextSliceStart, 200, false);
if (currentSlice.Status != SliceReadStatus.Success)
{
throw new Exception($"Aggregate {aggregateId} not found");
}
nextSliceStart = currentSlice.NextEventNumber;
foreach (var resolvedEvent in currentSlice.Events)
{
ret.Add(Serializer.Deserialize(resolvedEvent.Event.EventType, resolvedEvent.Event.Data));
}
} while (!currentSlice.IsEndOfStream);
return ret;
}
最佳答案
流是在您编写事件时自动创建的。您应该遵循推荐的命名约定,因为它启用了一些开箱即用的功能。
await Connection.AppendToStreamAsync("CustomerAggregate-b2c28cc1-2880-4924-b68f-d85cf24389ba", expectedVersion, creds, eventData);
CustomerAggregate-b2c28cc1-2880-4924-b68f-d85cf24389ba
The first events ID becomes the "aggregateID" in our case and then each new eventID after that is unique. The only way to recreate our aggregate is to replay the events in sequence. If the sequence fails an exception is thrown
CustomerAggregate
我们订阅了
$ce-CustomerAggregate
事件 - 我们只会看到那些“类别”,而不管它们的 ID 是什么 - 事件数据包含我们之后需要的所有内容。
$ce-CustomerAggregate
一起使用的持久订阅者(小型 C# 控制台应用程序) .持久订阅者很棒,因为他们记得您的客户确认的最后一个事件。因此,如果应用程序崩溃,您可以启动它,并从应用程序完成的最后一个位置开始。
关于eventstoredb - 我可以在 EventStore 管理站点的哪个位置查看我的保存事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52020412/
我目前以以下格式存储事件 mycategory-mytype-uniqueid .在阅读网络上的各种帖子后我所理解的我应该得到一个名为 mycategory 的类别这样做。我已经写了 : fromCa
我在我的应用程序中使用 EventStore,目前想部署在我们的一个产品环境中。当我在我的电脑上开发时,EventStore 启动时没有任何问题。当我想在我们的产品服务器上启动它时,问题就来了。 Ev
顺便说一句,你如何创建一个流? I use AppendToStreamAsync directly, is this right or shall I create a stream first t
当我尝试发布没有 eventId 的事件时,我得到: HTTP/1.1 400 Empty eventId provided. 如果我用随机的东西填充 eventId,那么我得到: HTTP/1.1
尽我所能,我无法访问我在 Windows Azure 上安装的 Event Store。我完全按照 the wiki 中推荐的说明进行操作。 .是的。我在 Azure 中正确设置了端口。但无论如何,我
最近我正在学习 CQRS,并希望更改我的系统以使用事件溯源模式。 但是我发现在.Net平台上,有两个Event Store的实现。 NEventStore(formerly JOliver Event
目前我正在为我的公司项目使用 Eventstore(由 Greg Young)。在我的读取模型中,我存储已处理的事件 ID,而不是事件名称。如何使用其 ID 在 Eventstore 中找到该事件?
我是一名优秀的程序员,十分优秀!