关联实体的任何行的核心数据谓词
Core Data predicate for any row of the associated entity
在下文中,我将描述我的 Core Data 模式的简化,我很确定它等同于我的真实情况。
我有两个实体 First
和 Second
通过多对多关系链接 r
。
Second
有两个布尔属性,我们称它为take
和you_should_not_take
。
我想查询 select 一行 First
iff 它退出 Second
的关联行与 take = true
.
我试过这个谓词:
NSPredicate(format: "ANY (%K == YES && %K == NO)", "r.take","r.you_should_not_take")
但是核心数据给我以下错误:"[General] Unable to parse the format string"
.
也许我必须使用这个:
NSPredicate(format: "((ANY %K == YES) && (ANY %K == NO))", "r.take","r.you_should_not_take")
但我担心最后一个查询将 select 行 First
当且仅当它存在 x
行 Second
且 x.take == YES
&& 它存在一行 y
如果 Second
对于 y.you_should_not_take == NO
,不保证 x == y
.
SQL 查询非常简单,但我对 Core Data 不是很熟悉,所以虽然我会尝试更多查询(并且我会测试第二个查询是否执行我的操作认为确实如此)我也在这里问过,希望答案会像 SQL.
中那样简单
至select所有第一个个与(至少一个)第二个个对象相关的对象take==true
和 you_should_not_take==false
你有
使用子查询。像(未经测试):
SUBQUERY(r, $x, $x.take == YES AND $x.you_should_not_take == NO).@count > 0
在下文中,我将描述我的 Core Data 模式的简化,我很确定它等同于我的真实情况。
我有两个实体 First
和 Second
通过多对多关系链接 r
。
Second
有两个布尔属性,我们称它为take
和you_should_not_take
。
我想查询 select 一行 First
iff 它退出 Second
的关联行与 take = true
.
我试过这个谓词:
NSPredicate(format: "ANY (%K == YES && %K == NO)", "r.take","r.you_should_not_take")
但是核心数据给我以下错误:"[General] Unable to parse the format string"
.
也许我必须使用这个:
NSPredicate(format: "((ANY %K == YES) && (ANY %K == NO))", "r.take","r.you_should_not_take")
但我担心最后一个查询将 select 行 First
当且仅当它存在 x
行 Second
且 x.take == YES
&& 它存在一行 y
如果 Second
对于 y.you_should_not_take == NO
,不保证 x == y
.
SQL 查询非常简单,但我对 Core Data 不是很熟悉,所以虽然我会尝试更多查询(并且我会测试第二个查询是否执行我的操作认为确实如此)我也在这里问过,希望答案会像 SQL.
中那样简单至select所有第一个个与(至少一个)第二个个对象相关的对象take==true
和 you_should_not_take==false
你有
使用子查询。像(未经测试):
SUBQUERY(r, $x, $x.take == YES AND $x.you_should_not_take == NO).@count > 0