我有以下数据模型关系(括号中的属性)
日(日期)----------->>事件(日期,姓名)
从日到活动之间存在一对多的关系。没有反比关系(即事件实体没有引用日)
首先创建事件并保存。这一天将在稍后创建。
检索日实体是否有办法让核心数据同时检索与该日期相同的每个事件?我搜索了其他一些问题,但所有这些问题都包括在创建日时手动设置事件。
答案 0 :(得分:0)
您使用CoreData
查询NSFetchRequest
,initWithEntityName(_:)
只能查询一个特定的实体类型(因此NSFetchRequest
初始值设定项)。如果您没有在两个实体之间设置关系,则无法使用单个NSPredicate
实例检索这两个实例(您可以使用相同的date
,前提是您拥有relationshipKeyPathsForPrefetching
1}}两个属性。
话虽如此,正如其他问题的答案可能表明的那样,如果您有关系集,则可以将NSFetchRequest
实体上的属性returnsObjectsAsFaults
设置为您的关系密钥来获取获取初始实体时关系的实体。假设您的目标是避免多次访问数据库,您可能还需要考虑将false
设置为<select
ng-disabled="currentQuestion.id"
ng-change="loadTopics()"
class="detail-subject-select browser-default"
ng-model="currentQuestion.SubjectId"
ng-options="value as key for (key, value) in {
'K8-English': 1,
'K8-Math': 2
}"
>
<option
disabled="disabled"
value=""
>Choose a Subject</option>
</select>
(仅当您拥有相对较少的对象时才这样做。)
答案 1 :(得分:0)
正如查尔斯所说,只需提出两个获取请求。第一个请求检索日,然后第二个请求检索同一日期的事件。
但是,我要做的是建立反向关系并改变对象创建的时间。创建事件时,如果没有日对象将其链接到,则同时创建新的日对象。如果您这样做,那么您可以自行获取日,并且可以通过关系自动获取事件。