我想知道是否有可能通過Get Event Store
創建訂閱服務Mongo
?也許我誤解了這句話,但讓我解釋一下。我目前有一個使用NEventStore
將事件寫入Mongo Database
的過程。我想要做的是訂閱Stream
Mongo
訂閱服務。Event Store訂閱服務MongoDB
無法在interweb上找到任何關於此的內容,但這是可能的嗎?簡而言之,我的問題可能是你可以將兩者混合在一起,或者爲了做到這一點,我必須將我的活動寫入eventstore
而不是Mongo
?也許,我正在談論這個錯誤,並且有另一種選擇?
我可以看到我正在編寫的事件,但無法觸發EventAppeared
。所有這些都是在我的機器上進行的。
我試圖創建一個精簡的應用程序,它做到這一點:
使用以下
using (var connection = EventStoreConnection.Create(new IPEndPoint(IPAddress.Loopback, 1113))) { connection.SubscribeToStreamAsync(@"mongodb://localhost:27017/Test", false, EventAppeared, SubscriptionDropped); var repository = new NEventStoreRepository(); repository.Write(new SomethingHasHappened("Hello")); Console.ReadLine(); } private static void SubscriptionDropped(EventStoreSubscription arg1, SubscriptionDropReason arg2, Exception arg3) { } private static void EventAppeared(EventStoreSubscription arg1, ResolvedEvent arg2) { }
我通過NEventStore將事件寫入我的蒙戈數據庫
創建訂閱public void Write(object @event) { var id = Guid.NewGuid(); using (var scope = new TransactionScope()) { using (var store = WireupEventStore()) { using (var stream = store.OpenStream(id.ToString(), 0, int.MaxValue)) { stream.Add(new EventMessage { Body = @event }); stream.CommitChanges(Guid.NewGuid()); scope.Complete(); } } } Console.ReadKey(); } private static IStoreEvents WireupEventStore() { return Wireup .Init() .LogToOutputWindow() .UsingMongoPersistence("NEventStore.MongoDB", new DocumentObjectSerializer()) .InitializeStorageEngine() .UsingJsonSerialization() .Build(); }
你在說GetEventStore嗎? – tomliversidge
道歉,是的。 –
您已將您的mongodb連接作爲GetEventStore中事件流的名稱。這是故意的嗎?您的流實際上是否稱爲「mongodb:// localhost:27017/Test」? – tomliversidge