Мобильный Azure Service C # .NET Backend PATCH не обновляется

1

Я создал простую мобильную службу 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 непосредственно из браузера в разделе "попробуйте", поэтому я неправильно настроил ее в самом проекте службы. Любые предложения будут ценны.

Спасибо, Роб

  • 0
    Вы использовали AutoMapper для правильного сопоставления DTO с объектом базы данных?
Теги:
azure
patch
mobile

1 ответ

0

Имена вашей собственности должны начинаться с заглавной буквы.

В противном случае настройте 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();
  • 0
    не публиковать только link если link работает, то ваш ответ бесполезен
  • 0
    У меня такая же проблема, но GlobalConfiguration, похоже, не является классом в моем проекте Azure Mobile Service.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню