我将 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 及其内部的对象和值上完成一些这样的查询?