저는 RavenDB를 처음 사용 했으므로 Any() LINQ 쿼리가 제대로 작동하도록 노력했습니다. 나는 다음과 같은 쿼리 나에게 "ES-ES"에 대한 번역이없는 모든 항목을 제공하기 위해 기대문제가 발생했습니다! raven db와 함께 작동하는 any() 쿼리
{
"Key": "BKey",
"Text": "B Key",
"IsLocal": false,
"Category": null,
"_destroy": false,
"Translations": [
{
"CultureCode": "es-ES",
"Text": null
},
{
"CultureCode": "ja-JP",
"Text": "Hello"
}
]
}
: 여기처럼 내 문서 모습입니다 그러나
var nonTranslatedEntries =
_docs.Query<ResourceEntry>().Where(e => e.Translations == null || e.Translations.Count == 0 || !e.Translations.Any(t => t.CultureCode == "es-ES" && t.Text != null))
이 ISN 일하고있어. 지정된 CultureCode에 대한 번역이있는 경우에도 항목을 다시 가져옵니다. 번역 배열 안에 하나의 항목 만있는 경우 작동합니다. 그러나 번역 배열 내에 둘 이상의 항목이있는 경우 쿼리가 작동을 멈 춥니 다. 대체 솔루션으로
, 나는 다음을 수행하려고 :var translatedEntries = from re in _docs.Query<ResourceEntry>()
where re.Translations.Any(t => t.CultureCode == cultureCode && t.Text != null)
select new {Id = re.Id};
var translatedIds = translatedEntries.ToList().Select(e => e.Id).ToList();
var nonTranslatedEntries =
_docs.Query<ResourceEntry>().Where(e => !e.Id.In(translatedEntryIds));
을하지만 그건 그냥 빈 목록을 다시 제공합니다.
도움이 될 것입니다.
감사합니다,
니 자르
실행중인 RavenDB의 버전은 무엇입니까? –
Google 그룹에서 소식을 보았습니다. 버그 인 것 같습니다. 그것은보고되었습니다. http://issues.hibernatingrhinos.com/issue/RavenDB-732 –