在尝试更新实体时,JayData 会在 WepAPI 后端触发 PatchEntity 方法。我发现这是一种无效行为,因为应该调用 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;
});
});
我在这里错过了什么吗?