Я искал высокий и низкий, но я не мог найти то, что искал. Мой вопрос похож на это, но немного иначе:Получение отсчета отношения данных ядра
Core Data - Count of Related Records
Допустим, у меня есть сущность автомобиля, который имеет один ко многим отношения с человеком, лица. Это означает, что автомобиль может иметь несколько человек, ведущих его, но каждый человек ездит только на одном автомобиле.
Я хочу, чтобы быть в состоянии выполнить только один предикат, в котором я мог бы достичь следующий:
- Всех автомобилей, которые являются «красными».
- Возвратите только атрибуты «Год» и «Цвет» соответствующего автомобиля.
- Возвратите количество людей, которые управляют этим автомобилем (т. Е. Размер NSS-набора людей внутри каждого результирующего автомобиля).
Возможно ли это сделать одним запросом?
Я знаю, как это сделать с несколькими запросами. Я бы просто использовал setPropertiesToFetch
и использовал отфильтрованный предикат для достижения 1 и 2 выше. Затем я выполнил другой запрос подсчета (countForFetchRequest
) об объекте Лица для каждого автомобиля, чтобы узнать, сколько Лица (ов) водит каждый автомобиль.
Ключ является третьим требованием выше. Я хочу сделать все в одном предикате, и я не хочу приносить все объекты объекта Person в память (производительность) в исходный запрос. Кроме того, больно звонить другому запросу countForFetchRequest
для каждого автомобиля.
Каков наилучший способ для этого?
Спасибо!
Вам также необходимо отправить '[fe tchRequest setResultType: NSDictionaryResultType]; ', и после создания выраженияDescription вы вызываете' [fetchRequest setPropertiesToFetch: @ [выражениеDescription]]; ' – Abizern
@Abizern: Вы, конечно, правы. Но OP в своем вопросе сказал, что он уже знает, как использовать setPropertiesToFetch для извлечения атрибута year и color, поэтому я пропустил эту часть. –
Просто заполните его для следующего человека, который смотрит на этот вопрос и видит ваш ответ :) – Abizern