我有一个简单的核心数据问题。
我设置了一个employee实体和一个employeeDetails实体。两者都有指向对方的关系,形成简单的一对一关系。每个员工有一个employeeDetail。
我能够存储新员工并在需要时获取他们。我的问题是如何在存储员工的同时存储匹配的employeeDetails,以及如何在fetch中检索匹配员工的详细信息?
感谢您提供的帮助
使用一个触发器,在每次插入到employee变量时触发。
http://en.wikipedia.org/wiki/Database_trigger我通过为实体重新生成类来解决问题,核心数据将添加一个表示关系的动态变量。当我存储实体时,我创建了一个Employee和EmployeeDetails对象,并将员工详细信息字段(由core data动态管理)指向我的EmployeeDetails对象。
- (void)addEmployee :(NSDictionary *)_employee {
// Create a new instance of the Employee entity.
Employee *employee = (Employee *)[NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:managedObjectContext];
EmployeeDetails *employeeDetails = (EmployeeDetails *)[NSEntityDescription insertNewObjectForEntityForName:@"EmployeeDetails" inManagedObjectContext:managedObjectContext];
// Add the new employee
employee.firstName = [_employee objectForKey:@"first_name"];;
employee.lastName = [_employee objectForKey:@"last_name"];;
/* --> */ employee.details = employeeDetails; // Associate with details object
// Add details
employeeDetails.address = [self getValue:[e objectForKey:@"street_address"]];
employeeDetails.cellPh = [self getValue:[e objectForKey:@"cell"]];
// Save the data
NSError *error;
if (![managedObjectContext save:&error]) {
NSLog(@"core date save error: %@", error);
}
}