Я начал использовать RavenDB с проектом 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();
Но я хочу, чтобы получить документ по: Headers.Header.MessageId
. К сожалению, в заголовках есть ключи с префиксом (Header и $), и я не знаю, как обращаться с ним в инструкции session.Query<Messages>()
.
я могу сделать это в RavenDB студии:
from doc in docs.Messages
where doc.Headers["Header.MessageId"] == "14f6cdf3-142d-4ab0-9610-a65600f1f460"
select new {
Id = doc.MessageId,
MessageId = doc.Headers["Header.MessageId"]
}
Я попытался создать Lucene запрос, но он не работает:
var doc = session.Advanced.LuceneQuery<object>().WhereEquals("Headers.Header.MessageId", "14f6cdf3-142d-4ab0-9610-a65600f1f460").ToList();
Можете ли вы сказать мне, что я делаю неправильно и помочь мне пожалуйста?