0

我的 coredata 模型中有两个表(有更多但保持示例简单)员工和部门。一个员工属于一个部门,一个部门包含许多员工。以下是表定义:

Employee
================
employeeID int32
firstName string
lastName string
departmentID int32

Department
================
departmentID int32
departmentName string

我只是想知道检索所有员工及其部门名称的最干净的方法是什么?

谢谢

4

1 回答 1

1

您似乎正在设计您的架构,就好像它是一个数据库。请不要这样做。这与 CoreData 的工作方式没有必要和对立。您应该摆脱您的 ID 字段。只需在模型中声明适当的关系,然后为员工获取部门所需要做的就是:

myEmployee.departmentName

获取所有员工将像这样完成:

NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
    entityForName:@"Employee" inManagedObjectContext:moc];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
    initWithKey:@"firstName" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];

NSError *error = nil;
NSArray *array = [moc executeFetchRequest:request error:&error];
if (array == nil)
{
    // Deal with error...
}

这是从文档中获取的。如果您使用的是 ARC,则相应地更改代码。

于 2012-08-27T04:28:22.743 回答