Как изменить объект в Delta Patch в ядре OData .net - PullRequest
0 голосов
/ 28 июня 2019

У меня довольно новенький вопрос, связанный с дельтой в операциях патча.Я хотел бы перехватить объект и обновить свойство

Bacteria.nameShort = HTMLExtractHelper.RemoveUnwantedTags(Bacteria.name);

при каждом обновлении / патче.

Я могу сделать это легко в пут и поставить глаголыно объект Delta, по-видимому, не позволяет мне обновить свойство в патче.

public async Task<IActionResult> Patch([FromODataUri] int key, [FromBody] Delta<Bacteria> Bacteria)
{
  if (!ModelState.IsValid)
  {
    return BadRequest(ModelState);
  }
  //var entity = await _db.Bacterias.FindAsync(key);
  var entity = _db.Bacterias.FirstOrDefault(i => i.bacteriaID == key);
  if (entity == null)
  {
    return NotFound();
  }

  Bacteria.Patch(entity);
  try
  {
    await _db.SaveChangesAsync();
  }
  catch (DbUpdateConcurrencyException)
  {
    if (!BacteriaExists(key))
    {
      return NotFound();
    }
    else
    {
      throw;
    }
  }

  return Updated(entity);
}

Как мне добиться обновления свойства внутри функции исправления моих контроллеров?

...