Event Store - Connect with .NET API

要使用 Event Store .NET API 連接 Event Store,先要安裝 EventStore.Client 套件。


加入 EventStore.ClientAPI 命名空間。

using EventStore.ClientAPI;


接著調用 EventStoreConnection.Create 取得 Connection 物件。

1
2
3
4
5
...
using (var conn = EventStoreConnection.Create(...))
{
...
}


調用 Connection 物件的 ConnectAsync 方法建立與 EventStore 的連線。

1
2
3
...
conn.ConnectAsync();
...


像是下面這樣,指定 Connection name 與 uri 建立出對應的連線物件,然後進行連線。

1
2
3
4
5
6
7
8
9
var connectionName = "MyConsole";
var uri = new Uri("tcp://admin:changeit@localhost:1113");

using (var conn = EventStoreConnection.Create(uri, connectionName))
{
conn.ConnectAsync().Wait();

Console.ReadKey();
}


連線的建立可從 Web interface 的 Dashboard 頁面查閱,像是這邊 Connections 下就有剛所建立的 MyConsole connection。


建立 Event Store 連線時也可以帶入 ConnectionSettings 做些細部的設定。


像是下面這邊就透過 ConnectionSettings 建立出設定物件,透過設定物件做些設定,像是使用 Verbose 層級的 Log 可以調用 EnableVerboseLogging(),要將 Log 導到主控台可調用 UseConsoleLogger()。

1
2
3
4
5
6
7
8
9
10
11
12
var connectionName = "MyConsole";
var uri = new Uri("tcp://admin:changeit@localhost:1113");
var settings = ConnectionSettings.Create();

settings.EnableVerboseLogging();
settings.UseConsoleLogger();

using (var conn = EventStoreConnection.Create(settings, uri, connectionName))
{
conn.ConnectAsync().Wait();
Console.ReadKey();
}



此外也支援連線字串的設定,

1
2
3
4
5
6
7
8
9
var connectionName = "MyConsole";
var connectionString = "ConnectTo=tcp://admin:changeit@localhost:1113; HeartBeatTimeout=500";

using (var conn = EventStoreConnection.Create(connectionString, connectionName))
{
conn.ConnectAsync().Wait();

Console.ReadKey();
}