Я нашел решение, но столкнулся с другой проблемой.
У меня была эта строка поверх контроллера клиента
[Route("tables/Customer")]
Я удалил его и отредактировал
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
к этому
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "tables/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
но теперь, когда я обновляюсь с клиента, он выдает ошибку неверного запроса
Обновление
Я исправил ошибку неверного запроса.
в моем клиентском классе бэкэнда у меня было datetime? и в моем классе клиента клиента у меня есть datetime .. я удалил? .
теперь я получаю внутреннюю ошибку сервера.
Обновление 2
В моей базе данных запись, которую я пытался обновить, содержала несколько пустых столбцов, я заполнил их, и теперь я снова получаю неверный запрос.
Обновление 3
Я получил это на работу. У меня было два первичных ключа в базе данных. Когда я вызвал UpdateAsync, я передал только один ключ в объекте. когда я сдал два ключа, это сработало.
Customer customer = new Customer
{
Id="10k", // first primary key
CustomerId=12, // second primary key
FirstName = FirstNamelbl.Text.ToString(),
LastName = LastNamelbl.Text.ToString(),
DOB = doblbl.Date,
Email = Emaillbl.Text.ToString(),
Sex = GenderGroup.SelectedItem.ToString()
};
// save customer input
await manager.UpdateCustomerRecordAsync(customer);
менеджер
public async Task UpdateCustomerRecordAsync(Customer customer)
{
try
{
await customerTable.UpdateAsync(customer);
}
catch (MobileServiceInvalidOperationException msioe)
{
Debug.WriteLine("Invalid sync operation: {0}", new[] { msioe.Message });
}
catch (Exception e)
{
Debug.WriteLine("Sync error: {0}", new[] { e.Message });
}
}