我正在尝试NEventStore。我开始了示例项目,我创建了一些事件并保存到数据库中。但在数据库中,我只看到加密数据,我无法识别存储事件的正确性。我试图关闭所有关于加密的设置,但没有改变。
我的初始代码:
var init = Wireup.Init()
.LogToOutputWindow()
.UsingInMemoryPersistence()
.UsingSqlPersistence("EventStore") // Connection string is in app.config
.WithDialect(new MsSqlDialect())
.EnlistInAmbientTransaction() // two-phase commit
.InitializeStorageEngine()
.TrackPerformanceInstance("example")
.UsingJsonSerialization()
//.Compress()
//.EncryptWith(EncryptionKey)
.HookIntoPipelineUsing(new[] {new AuthorizationPipelineHook()})
.UsingSynchronousDispatchScheduler()
.DispatchTo(new DelegateMessageDispatcher(DispatchCommit))
.Build();
我尝试在SQL中通过cast([Payload] as varchar(max)
将varbinary转换为varchar来实现,但我也没有收到干净的数据。
如何以可读的形式阅读NEventStore数据?
答案 0 :(得分:3)
您可以将Payload列强制转换为XML:
SELECT TOP 10 CAST(Payload AS XML), *
FROM [dbo].[Commits]
即使有效负载实际上是JSON,我也会得到正确的结果,例如
[{"Headers":{},"Body":"Test"}]
显然,这对压缩或加密数据不起作用。