Event Store - Appending to a stream in a single write with .NET API
要使用 Event Store .NET API 發送 Event 給 Event Store,可以先進行 Event Store 的連線。
連線後設定 EventData。
...
var typeName = "MyType";
var data = new {
Msg="Hello world!"
};
var jsonData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data));
var eventData = new EventData(Guid.NewGuid(), typeName, true, jsonData, null);
...
呼叫 Connection.AppendToStreamAsync 將 EventData 送入 Event Store 指定的 Stream (ExpectedVersion 可用來決定是否要判斷 Stream 是否存在)。
...
conn.AppendToStreamAsync(streamName, ExpectedVersion.Any, eventData);
...
程式寫起來會像下面這樣:
using EventStore.ClientAPI;
using Newtonsoft.Json;
using System;
using System.Text;
...
var connectionName = "MyConsole";
var connectionString = "ConnectTo=tcp://admin:changeit@localhost:1113; HeartBeatTimeout=500";
using (var conn = EventStoreConnection.Create(connectionString, connectionName))
{
conn.ConnectAsync().Wait();
var streamName = "MyStream";
var typeName = "MyType";
var data = new {
Msg="Hello world!"
};
var jsonData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data));
var eventData = new EventData(Guid.NewGuid(), typeName, true, jsonData, null);
conn.AppendToStreamAsync(streamName, ExpectedVersion.Any, eventData).Wait();
}
...
運行起來後可透過 Web interface 找到對應的 Stream。
對應的 Event。