2

私が知る限り、SQL データベースの Commits テーブルの Payload 列に JSON を表示する必要がありますが、長い 16 進数の文字列があります。

私のワイヤーアップ コードは、次の編集を加えたサンプルのとおりです。

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 を取得してデバッグを容易にする方法はありますか?

4

2 に答える 2

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]

LIKEon Payloadcolumnを使用して、特定のイベントについてイベント ストアにクエリを実行できます。

于 2013-05-09T08:51:02.170 に答える
1

次のようなクエリを実行すると、Payload 列の文字列コンテンツが取得されます。

Commits
.Select(c => System.Text.Encoding.UTF8.GetString(c.Payload.ToArray()))
.ToList();
于 2013-04-11T09:54:38.867 に答える