2016-12-01 2 views
0

У меня есть две таблицы. Один из них - 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 как в моем коде выше, но я не уверен.

+0

См. Связанный вопрос, но если вы думаете в терминах «таблиц» и «присоединяется» и «выбирает», то вы недопонимаете Core Data. Это не база данных. Это движок устойчивости объекта. Вы должны думать об этом так же, как вы думаете, имея кучу объектов в памяти, которые все указывают друг на друга. Он может просто обрабатывать графы объектов, которые намного больше, чем позволяет память. Некоторые проблемы поддаются настойчивости объекта. Некоторые из них лучше подходят к базам данных. Только не путайте их. –

ответ

0

Вы не можете выполнить операцию соединения как sql в coreData, вы должны использовать NSPredicate.

проверить эту ссылку: joins in coredata using Objective C

Это может помочь вам.

+0

Я не могу понять. –

+0

Вы проверили эту ссылку? –

Смежные вопросы