У меня есть две таблицы. Один из них - companydetail
, а второй - favCompany
Оба имеют общий companyID
. Как я могу получить все companydetail
, где companyID
вставляется в favCompany
? Вот мой код:Основные данные, Как использовать внутреннее соединение в данных ядра
-(NSArray *)getAll_FavCompany
{
NSMutableDictionary * userinfo = [[NSUserDefaults standardUserDefaults]objectForKey:@"user_info"];
NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[managedObjectContext setParentContext:[TDODataManager sharedManager].managedObjectContext];
NSManagedObjectContext *mainManagedObjectContext = [managedObjectContext parentContext];
NSFetchRequest *fetch_company = [NSFetchRequest fetchRequestWithEntityName:@"Tbl_companyFav"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"companyid = %@ AND loginuserid = %@", [userinfo objectForKey:@"user_id"]];
[fetch_company setPredicate:predicate];
NSError *error = nil;
NSArray *result = [mainManagedObjectContext executeFetchRequest:fetch_company error:&error];
return result;
}
Я думаю, что нужно использовать relationshipKeyPathsForPrefetching
как в моем коде выше, но я не уверен.
См. Связанный вопрос, но если вы думаете в терминах «таблиц» и «присоединяется» и «выбирает», то вы недопонимаете Core Data. Это не база данных. Это движок устойчивости объекта. Вы должны думать об этом так же, как вы думаете, имея кучу объектов в памяти, которые все указывают друг на друга. Он может просто обрабатывать графы объектов, которые намного больше, чем позволяет память. Некоторые проблемы поддаются настойчивости объекта. Некоторые из них лучше подходят к базам данных. Только не путайте их. –