我在我的模型中有兩個實體,A
和B
。 A
與B
有多對多關係,它的逆與A
是一對一的關係。我想如下獲取使用A
實體B
的結果:核心數據和查詢結果
- 對實體
A
執行讀取請求的一些斷言。 - 關於此請求返回的結果,請鑽取所有相關的
B
,並在第二個謂詞的這些過濾器上鑽取。 - 返回實體
B
的所有有效結果。
當然我可以做(1),然後使用第二個謂詞過濾一個B
的數組。但我知道這是不理想的。
即使使用單個提取和謂詞,我怎樣才能最有效地做到這一點?
我在我的模型中有兩個實體,A
和B
。 A
與B
有多對多關係,它的逆與A
是一對一的關係。我想如下獲取使用A
實體B
的結果:核心數據和查詢結果
A
執行讀取請求的一些斷言。B
,並在第二個謂詞的這些過濾器上鑽取。B
的所有有效結果。當然我可以做(1),然後使用第二個謂詞過濾一個B
的數組。但我知道這是不理想的。
即使使用單個提取和謂詞,我怎樣才能最有效地做到這一點?
不幸的是,我不確定你在問什麼。如果你提供更多的細節,它肯定會有所幫助。
所以,我只需要猜測...請記住,獲取請求只能返回一種類型的實體。所以,如果你想要的東西是多方關係,取回。
您可以使用您的謂語「」符號...我也很可能做到向下搜索...
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Employee"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"department.name like 'Support'"];
有一個從部門1對多的關係員工。上面的內容抓住了名稱中包含「支持」的部門的所有員工。
如果您已經持有A的實例,只需通過A的訪問者訪問相關的B實例。
如果您需要直接獲取與某個特定A相關的所有B(您在本例中不是這樣),那麼您將爲B實體構建一個基於(反)關係的謂詞的獲取請求的B到A.(具體語法將取決於反向關係名稱,以及該反向是一對多還是多對多)。