1

Serilog ログイベントを ravenDb に保存しています。

そして今、特定の「動的」プロパティを持つすべてのドキュメントが返されるクエリを作成しようとしています。

これが私のクエリです(動作しません)

var logsWithRole = DataSession.Query<Serilog.Sinks.RavenDB.Data.LogEvent>()
          .Where(o => o.Properties.ContainsKey("Role")).ToList();

これは、クエリしようとしている ravenDb のドキュメントの 1 つの例です。

{
  "Timestamp": "2014-11-20T01:20:05.5095877+01:00",
  "MessageTemplate": "{Role}, {User} logged in",
  "Level": "Information",
  "Exception": null,
  "RenderedMessage": "True, \"Steve\" logged in",
  "Properties": {
    //this propery below (Role and it's value) I'm trying to get
    "Role": true,
    "User": "Steve"
  }
}

NotSupportedException を取得するだけです: 式を理解できませんでした: .Where(o => o.Properties.ContainsKey("Role"))

私はここで間違っていますか?Serilogs 構造化ロギング機能と、それを RavenDb と統合する nuGet のため、このようなクエリは、Properties-object で実行できる必要があり、そのオブジェクトと値は内部にありますか?

4

1 に答える 1

1

使用する:

          .Where(o => o.Properties["Role"] != null).ToList();
于 2014-11-20T06:47:42.977 に答える