public async Task <HttpResponseMessage> PatchEntity(ServiceApiEdmEntityObject entity, ODataPath path, QueryOptions query) { HttpResponseMessage errorResponse; if (!this.TryValidateRequest(entity, path, this.oDataRepository.CanPatch, out errorResponse)) { return(errorResponse); } var patchedEntity = await this.oDataRepository.Patch(path, query, entity.As <IODataEntityObject>()); return(this.Request.CreatePatchResponse(patchedEntity)); }
public override object CreateEntityResource(IEdmEntityTypeReference entityType, ODataDeserializerContext readContext) { var resource = base.CreateEntityResource(entityType, readContext); var edmEntityObject = resource as EdmEntityObject; if (edmEntityObject != null) { // we force web api to use our own EdmEntityObject which implements IODataEntityObject resource = new ServiceApiEdmEntityObject(entityType); } return(resource); }