Предоставленный элемент не имеет идентификатора

Пожалуйста, помогите мне, при вызове сценария обновления для таблицы в Azure я всегда получал ошибку

Предоставленный элемент не имеет идентификатора

и когда я добавил идентификатор строки в словарь, появляется новая ошибка

ОШИБКА Домен ошибки = com.Microsoft.WindowsAzureMobileServices.ErrorDomain Code=-1105 Предоставленный элемент не имеет действительного идентификатора.

UserInfo=0x1d587e20 {NSLocalizedDescription=Предоставленный элемент не имеет действительного идентификатора.}

Как мне обновить запись?


person user2656303    schedule 12.12.2013    source источник
comment
Можете ли вы опубликовать код, который вы используете для вставки элемента? Кроме того, какую версию iOS Mobile Services SDK вы используете?   -  person carlosfigueira    schedule 12.12.2013
comment
-(void)updateCompanyTPersonTable:(NSDictionary*)item tableName:(NSString *)tableName{ NSLog(@updateCompanyTPersonTable); NSDictionary *params = @{@table: tableName}; [self.jobagg_companyTPersonTable update: параметры элемента: завершение параметров: ^ (NSDictionary * item, NSError * error) { [self logErrorIfNotNil: error]; // завершение(); }]; } Это функция, которую я использую для вызова сценария обновления, я использую ios sdk 7.0.   -  person user2656303    schedule 13.12.2013
comment
Каково значение идентификатора в словаре item, который вы пытаетесь обновить? Если вы добавите NSLog(@"id: %@", [item objectForKey:@"id"]) в свой метод, он должен сообщить вам это значение.   -  person carlosfigueira    schedule 13.12.2013


Ответы (2)


Каждая таблица в мобильной службе Azure имеет поле идентификатора. Вы должны включить поле ID при публикации обновления. Поле идентификатора должно быть только в классе, а не в фактических данных, которые вы отправляете, например.

public class Item
{
    public string Id { get; set; }
    public string Text { get; set; }
}


CurrentPlatform.Init();
Item item = new Item { Text = "Awesome item" };
await App

Delegate.MobileService.GetTable<Item>().InsertAsync(item);
person jpace7    schedule 13.12.2013

Попробуйте загрузить последнюю версию Windows Azure SDK.

person Robson Previato    schedule 24.12.2013