Проблема запроса iOS Coredata с использованием предиката - PullRequest
0 голосов
/ 13 мая 2018

У меня есть две таблицы базы данных, DeviceCatalogue и SkuDetails. DeviceCatalogue имеет отношение один ко многим со SkuDetails, поскольку skudetails - это массив. Проблема возникает, когда я фильтрую skudetails на основе цен.

enter image description here

для запросов к базе данных я использую следующий предикат в DeviceCatalogue:

"Any skudetails.priceWithVat >= 1 And Any skudetails.priceWithVat <= 2000"

это в основном возвращает мне все устройства в этом диапазоне. но проблема в том, что мне нужны только те skudetails, которые в основном под этим фильтром, но поскольку обратное отношение возвращает мне все skudetails с этим диапазоном.

Я также пытаюсь использовать подзапрос, но это все еще не решение.

Давайте рассмотрим пример проблемы.

IPhone6  <Devices>
- color -> Black , storage -> 64GB , Price 2000 <SkuDetail>
- color -> Black , storage -> 32GB , Price 1800 <SkuDetail>
- color -> White , storage -> 128GB , Price 2800 <SkuDetail>

Мне потребовались только черные 32 ГБ, так как они находятся под этим диапазоном, но я получаю все 3 из них. как я возвращаю устройства устройства.

Должен ли я изменить свой предикат на что-то другое, чтобы получить соответствующий результат, или я делаю что-то неправильно. или есть ошибка в общей архитектуре базы данных.

...