2013-03-30 43 views
2

十六进制字符串至于我可以告诉我应该有JSON显示有效载荷列在我的SQL数据库提交表,但是,我有很长的十六进制字符串。EventStore只显示在有效载荷列

我wireup代码是按照与下面编辑样品:

private static IStoreEvents WireupEventStore() 
{ 
     return Wireup.Init() 
     .LogToOutputWindow() 
     .UsingInMemoryPersistence() 
     .UsingSqlPersistence("EventStore") // Connection string is in app.config 
      .WithDialect(new MsSqlDialect()) 
      .EnlistInAmbientTransaction() // two-phase commit 
      .InitializeStorageEngine() 
      .UsingJsonSerialization() 
     .HookIntoPipelineUsing(new[] { new AuthorizationPipelineHook() }) 
     .UsingSynchronousDispatchScheduler() 
      .DispatchTo(new DelegateMessageDispatcher(DispatchCommit)) 
     .Build(); 
} 

任何想法如何获得JSON和使调试更容易?

回答

1

与此类似,会得到有效载荷列的字符串内容的查询:

Commits 
.Select(c => System.Text.Encoding.UTF8.GetString(c.Payload.ToArray())) 
.ToList(); 
2

只需创建以下几种观点:

CREATE VIEW [dbo].[DeserializedCommits] 
    AS 
    SELECT 
     [StreamId] 
     ,[StreamRevision] 
     ,[Items] 
     ,[CommitId] 
     ,[CommitSequence] 
     ,[CommitStamp] 
     ,[Dispatched] 
     ,CAST([Headers] AS VARCHAR(MAX)) AS [Headers] 
     ,CAST([Payload] AS VARCHAR(MAX)) AS [Payload] 
    FROM [dbo].[Commits] 

可以比查询您的事件存储为特定的在Payload列上使用LIKE的事件。