-1

对不起,如果我让任何人感到困惑,但我会尽力描述我的问题。

我有一个名为 Document 的实体和另一个名为 Customer 的实体,该 Document 有一个名为 CustomerID 的属性,该属性是从 Customer 属性 CustomerID 分配的,并且它有一个 updatedDate 属性。

我想获取最近的 10 个文档,但只获取每个 CustomerID 的最新文档。

4

1 回答 1

0

如果我理解正确,您想从指定客户那里获得 10 个最新的文档吗?这很容易。

NSFetchRequest *request = [[NSFetchRequest alloc] init];
   request.entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext];//Specify the entity Name
   request.predicate = [NSPredicate predicateWithFormat:@"customerID = %@",customerID];//Specify the ID you need
   request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"updatedDate" ascending:YES]];//Sorted by most recent ones
   request.fetchLimit = 10;//You'll get ten latest Documents
   NSError *error = nil;

 latestDocuments =  [managedObjectContext executeFetchRequest:request error:&error];

编辑

正如我们发现的那样,任务是获取十个最近的文档,但每个客户只有一个,我真的认为没有办法以某种方式有效地做到这一点(我的意思是,没有 IN 查询,它将包含您已经获取的客户 ID) ,但是要为您的客户添加新的一对一的情感- latestDocument,并与之相反,只需对文档提出请求,其中isLatestToCustomer不为零。

于 2012-04-10T12:28:11.183 回答