【问题标题】:Query issue using RavenDb with Serilog使用 RavenDb 和 Serilog 查询问题
【发布时间】:2014-11-20 14:47:42
【问题描述】:

我将 Serilog 日志事件存储到 ravenDb 中。

现在我尝试编写一个查询,其中应返回具有特定“动态”属性的所有文档。

这是我的查询(不工作)

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

这是我试图查询的 ravenDb 中的一个文档示例:

{
  "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 结构化日志记录功能以及 nuGet 将其与 RavenDb 集成,因此必须能够在 Properties-object 及其内部的对象和值上完成一些这样的查询?

【问题讨论】:

    标签: linq ravendb serilog


    【解决方案1】:

    用途:

              .Where(o => o.Properties["Role"] != null).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      相关资源
      最近更新 更多