Пытаясь обновить объект, JayData запускает метод PatchEntity на серверной части WepAPI. Я считаю это недопустимым поведением, поскольку следует вызывать UpdateEntity.
Функции добавления и удаления объекта работают нормально. На бэкенде у меня есть контроллер, наследуемый от EntitySetController‹>
public class BaseODataController<TService, TEntity, TEntityDto, TIdentityType> : EntitySetController<TEntityDto, TIdentityType>
{
//.....
protected override TEntityDto UpdateEntity(TIdentityType key, TEntityDto update)
{
// is not getting called
_service.Update(update);
return base.UpdateEntity(key, update);
}
protected override TEntityDto PatchEntity(TIdentityType key, Delta<TEntityDto> patch)
{
// gets called
return base.PatchEntity(key, patch);
}
//.....
}
Вот код, который вызывается на стороне клиента:
vm.updateRole = function(r) {
return $data.initService('/odata/$metadata').then(function (context) {
r.Name = "NewUpdateRole";
context.Role.update(r);
r.entityState = $data.EntityState.Modified;
context.saveChanges().then(function(result) {
debugger;
});
});
Я что-то упустил здесь?