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

1.png

加入 EventStore.ClientAPI 命名空間。

using EventStore.ClientAPI;

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

...
using (var conn = EventStoreConnection.Create(...))
{
...
}

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

...
conn.ConnectAsync();
...

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

var connectionName = "MyConsole";
var uri = new Uri("tcp://admin:changeit@localhost:1113");

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

Console.ReadKey();
}

2.png

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

3.png

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

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

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();
}

4.png

5.png

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

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();
}

6.png