Я создал простую мобильную службу azure для.NET в С#. У меня мобильная служба работает и работает (все, что она делает в настоящее время, работает с вашим обычным CRUD на одной таблице). Проблема, с которой я столкнулась, заключается в том, что PATCH/UPDATE не будет делать, как говорит. Я могу сделать все, что я пробовал, SELECT, INSERT, DELETE, но мне не удалось обновить данные.
Когда я отлаживаю блок кода, который вызывает UpdateAsync, patch.GetEntity()..... всегда имеет значения NULL или обнулено или день один datetime, например, он не передает значения свойств того, что я пытаюсь обновить. Единственное значение, которое у меня есть, это правильный идентификатор. Ниже я попытался вырвать часть кода, который у меня есть, я использовал некоторые из тех, что были в первых нескольких учебниках на веб-сайте Azure.
У меня есть объект данных:
public class AdminLookupDATA: EntityData
{
public string description { get; set; }
public int lookuptype { get; set; }
public int priority { get; set; }
public bool inactive { get; set; }
public DateTime createdate { get; set; }
public DateTime editdate { get; set; }
}
У меня есть DTO:
public class AdminLookupDTO
{
public string id { get; set; }
public string description { get; set; }
public int lookuptype { get; set; }
public int priority { get; set; }
public bool inactive { get; set; }
public DateTime createdate { get; set; }
public DateTime editdate { get; set; }
}
У меня есть модель:
public class AdminLookupModel
{
public string Id { get; set; }
public string description { get; set; }
public int lookuptype { get; set; }
public int priority { get; set; }
public bool inactive { get; set; }
public DateTime createdate { get; set; }
public DateTime editdate { get; set; }
}
Моя ПУТЬ внутри моего контроллера:
public Task<AdminLookupDATA> PatchAdminLookupDATA(string id, Delta<AdminLookupDATA> patch)
{
return UpdateAsync(id, patch);
}
Кроме того, у меня такая же проблема, если я пытаюсь запустить функцию PATCH непосредственно из браузера в разделе "попробуйте", поэтому я неправильно настроил ее в самом проекте службы. Любые предложения будут ценны.
Спасибо, Роб
Имена вашей собственности должны начинаться с заглавной буквы.
В противном случае настройте CamelCasePropertyNamesContractResolver, как указано здесь:
http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx
фрагмент кода
var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Formatting = Formatting.Indented;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
link
если link
работает, то ваш ответ бесполезен