C# RavenDB中带点前缀的处理

C# RavenDB中带点前缀的处理,c#,ravendb,prefix,C#,Ravendb,Prefix,我已经开始在C#项目中使用RavenDB。我有以下结构的文件: { "MessageId": "8c34dec8-e6fe-6bee-2dc6-2cf83e374090", "Headers": { "Header.MessageId": "14f6cdf3-142d-4ab0-9610-a65600f1f460", "Header.Timestamp": "2016-08-02 12:40:55:783130 Z", "$.diagnostics.host":

我已经开始在C#项目中使用RavenDB。我有以下结构的文件:

{
  "MessageId": "8c34dec8-e6fe-6bee-2dc6-2cf83e374090",
  "Headers": {
    "Header.MessageId": "14f6cdf3-142d-4ab0-9610-a65600f1f460",
    "Header.Timestamp": "2016-08-02 12:40:55:783130 Z",
    "$.diagnostics.host": "1ddc6cefd4d776f1de8fefc33a45d020",
  },
  "Timestamp": "2016-08-02T12:43:25.3914940Z"
}
我可以通过MessageId获取文档:

var doc = session.Query<Messages>().Where(w => w.MessageId == "8c34dec8-e6fe-6bee-2dc6-2cf83e374090").ToList();
我尝试创建Lucene查询,但它不起作用:

var doc = session.Advanced.LuceneQuery<object>().WhereEquals("Headers.Header.MessageId", "14f6cdf3-142d-4ab0-9610-a65600f1f460").ToList();
var doc=session.Advanced.LuceneQuery().WhereEquals(“Headers.Header.MessageId”,“14f6cdf3-142d-4ab0-9610-a65600f1f460”).ToList();

你能告诉我我做错了什么并帮助我吗?

你的文档是由管理层创建的吗?由于您的文档不能在.net类中表示(也不能通过消息表示)(您的属性名称不能带有点),这意味着您无法加载文档;你需要修补文档(删除点)

我也面临同样的问题,用点(.)选择键的解决方案是什么。在我的例子中,它在使用doc.MessageId时总是返回空值,在doc.Headers[“Header.MessageId”]的情况下返回错误消息。
var doc = session.Advanced.LuceneQuery<object>().WhereEquals("Headers.Header.MessageId", "14f6cdf3-142d-4ab0-9610-a65600f1f460").ToList();