मुझे पता है कि कोर डेटा डेटाबेस नहीं है और इसमें कई अंतर हैं। क्या यह वाला है?कोर डेटा: 3 टेबल में शामिल हों?
एक डेटाबेस में, मैं आमतौर पर निम्नलिखित है |
एक - >> बी - >> सी
'ए' कई 'बी' जो कई 'सी'
है है क्वेरी, "मुझे दो सब एक के जो = 'एक्स' c.attr है आसानी से की तरह लिखा है:
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', कारण: 'कई करने वाली कई चाबियाँ यहाँ की अनुमति नहीं'
हूँ मेरा मतलब है के लिए एक सीमा डेटाबेस बहु फोन पर क्या है की व्याख्या करने को सही -टेबल जुड़ता है?
मैं चारों ओर गुगल रहा हूं और एक निश्चित उत्तर नहीं मिला।
इस क्वेरी के लिए मेरे वर्तमान समाधान लगता है:
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
वहाँ एक बेहतर तरीका है? विचार के लिए अग्रिम धन्यवाद।
यूघ, ए, बी, सी वाक्यविन्यास में शामिल होना बुरा है। –