RavenDb Пропускает элементы, когда нет условий фильтрации - PullRequest
5 голосов
/ 29 декабря 2011

Я хочу получить все документы какого-либо типа по следующему запросу:

var customers = documentSession.Query<Customer>()

, но в этом случае я получаю только 1 результат (а их 78).Если я добавлю условие фильтрации, которое всегда выполняется, я получу все 78 документов:

var customers = documentSession.Query<Customer>().Where(c => c.Id != null).ToList();

Я полагаю, это ошибка.

Обновление. RavenDb Build 531

Обновление 2

Даниэль и Орен, извините за задержку.

Я подготовил образец заявления.Вы можете скачать его здесь: http://www.2shared.com/file/AGIAR5UA/RavenDbSampleAppication.html

Существует тестовый проект NUnit, который ссылается на SkazhiKazinoNet.Data.Model.dll, где определена модель.Я только что добавил пакет с последним RavenDb и импортировал данные из dump4.raven (вы можете найти их в пакетах / Raven / tools) от Raven.Smuggler.

Ответы [ 2 ]

2 голосов
/ 31 декабря 2011

Вы были правы, база данных в вашем архиве повреждена.

Я мог воспроизвести ошибку.Запрос:

curl -X GET http://localhost:8080/indexes/dynamic/Casinos

возвращает

{"Results":[],"Includes":[],"IsStale":false,"IndexTimestamp":"2011-12-31T02:19:51.2660000","TotalResults":0,"SkippedResults":0,"IndexName":"LastComments","IndexEtag":"00000000-0000-0100-0000-000000000078"}

Затем я удалил все индексы и перезапустил сервер.Теперь запрос возвращает правильные результаты.Поэтому, после того как вы удалите все свои индексы и воссоздаете их, он также должен работать на вашем компьютере.

Извините, но я не могу предоставить дополнительную информацию по этому поводу, возможно, Орен может.

2 голосов
/ 29 декабря 2011

Я почти уверен, что такой ошибки нет (в любой последней версии) по нескольким причинам:

  • это было бы очень много, многие приложения сломались бы
  • есть достаточное количество юнит-тестов, которые не пройдут

Чтобы помочь вам определить проблему - можете ли вы предоставить провальный тест?

Пожалуйста, убедитесь, что вы звоните .ToList() и по первому запросу.

...