Я знаю, что Core Data не является базой данных, и есть много различий. Это один?Основные данные: 3 таблицы присоединиться?
В базе данных, я бы обычно имею следующий
A - >> B - >> C
"А" имеет много "B", который имеет много "C"
запрос, «Дай мне все а-х, которые c.attr =„X“легко написано как:
select * from a, b, c where a.id = b.aid and b.id = c.bid and c.attr = 'X'
в основных данных, я хотел бы сделать то же самое, но используя предикат, как:
NSPredicate *predicate =
[NSPredicate predicateWithFormat:@"ANY bs.cs.attr = %@", "X"];
[frequest setEntity:entityA];
[frequest setPredicate:predicate];
Делая это приводит к ошибке: «NSInvalidArgumentException», причина: «множественный ко многим ключи не разрешены здесь»
Я правильно интерпретировать в виде есть ограничение на то, что базы данных называют мульти -table присоединяется?
Я googled вокруг и не смог найти окончательный ответ.
Мой текущий решение этого запроса выглядит следующим образом:
NSPredicate *predicate =
[NSPredicate predicateWithFormat:@"ANY cs.attr = %@", "X"];
...
NSArray *bs = //execute fetch
for (B *b in bs) {
//add b.a into an array
}
//return array
Есть ли лучший способ? Заранее благодарим за рассмотрение.
ugh, синтаксис a, b, c является злым. –