как проверить наличие пустой коллекции в запросе db4o SODA - PullRequest
0 голосов
/ 05 марта 2011

Как видно из заголовка, есть ли способ проверить наличие пустой коллекции в запросе SODA?

Я могу проверить, установлено ли в поле коллекции значение null, и проверить значения свойств в элементах коллекции, ноне знаю, как проверить, нет ли в коллекции элементов.

Любая помощь приветствуется:)


Редактировать 1: Я знаю, как сделатьзапрос происходит вне фильтрации db4o, т. е. путем переключения на использование Native Queries или LINQ;или делать то же самое, что происходит при проверке счетчика коллекции, при этом используется оценка.

Я на самом деле пытаюсь избежать активаций, вызванных собственным запросом, так как он действительно поражает нас в производительности.в нашем сценарии.

Ответы [ 2 ]

2 голосов
/ 06 марта 2011

Мне не повезло, когда я искал решение или пробовал какие-либо варианты с чеком или размером в качестве чеков. Попробовав различные варианты с несколькими сфокусированными интеграционными тестами, я нашел один, который делает свое дело:

Дано поле _list типа List:

...
query.Descend("_list").Constrain(typeof(Item)).Not();
...

Эффективно возвращает только те записи, у которых нет элементов в списке, поскольку они единственные, которые проходят проверку на отсутствие элементов типа Item. Это работает в обоих случаях, когда _list имеет значение null или является пустым списком.

0 голосов
/ 05 марта 2011

Примечание: я не имею понятия работать с db40. Это чисто на основе поиска

Посмотрите на метод Size на IObjectSet здесь .

РЕДАКТИРОВАТЬ: Основываясь на моем поиске "SODA-запроса db40", я видел примеры, использующие IObjectSet в качестве возвращаемого значения для query.Execute, и, следовательно, вышеупомянутое могло бы помочь.

...