我有一个名为“Genre”的实体,它具有genreID和parentGenreID属性。我想创建一个动态属性,它给出了Genre实体的计数,其中parentGenreID等于行的genreID,这样我就不必查询每个返回行的计数。
如果我在SQL中这样做,我会使用查询:
SELECT g.title, (SELECT COUNT(*) FROM genres sg WHERE sg.parentGenreID = g.genreID) as subgenres FROM genres g
我想也许一个Fetched Property就是答案,但那些似乎是作为NSArrays返回的,我仍然在试图弄清楚适当的语法是什么。
我最好的猜测是:
SUBQUERY(Genre, $genre, $genre.parentGenreID = $FETCH_SOURCE.genreID).@count
在Core Data中执行此操作的正确方法是什么?
答案 0 :(得分:-1)
使用NSPredicate
,您可以将条件设置为parentGenreID=genreID
。不使用executeFetchRequest
,而是使用countForFetchRequest
来获取计数,然后再次使用带有subgenres IN
的NSPredicate executeFetchRequest
,它会返回包含您所期望的标题的记录。