使用Azure返回DeleteAsync - Xamarin的代码

时间:2017-06-13 20:52:05

标签: c# azure xamarin xamarin.forms cross-platform

我需要知道函数/方法来检索返回代码以删除Azure DataBase的数据(我使用DeleteAsync),以便在出现错误或NO-OK时向我显示一个错误的屏幕。我需要不同的操作(插入,更新......)

下一步显示我的代码......

     void delete_click_button(object sender, EventArgs a)
     {
         if (ID != "")
         {
             App.AzureService.Delete(ID);
             **//If return correct code....{**

                 DisplayAlert("Warning", "Delete satisfactory", "Back");
                 Navigation.PopAsync();
             **}
             //If return code error when delete....
             {
                //display message
             }**
         }

谢谢,我希望回答:D

1 个答案:

答案 0 :(得分:0)

根据您的描述,我假设您使用azure移动应用作为移动后端。对于C#mobile app后端,TableController下的delete操作默认定义如下:

//DELETE tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public Task DeleteTodoItem(string id)
{
  return DeleteAsync(id);
}

对于您的移动客户端,您可以按如下方式调用删除操作:

//delete a item and return nothing
await onlineTodoTable.DeleteAsync(new TodoItem() {Id= "bb29f1655fb94897a3074f8e5b91b86d"});

Or

//delete a item and return a JToken
JObject obj = new JObject();
obj.Add("id", "faa9a47e57114988b0395a4c32b7d05d");
var jtoken=await onlineTodoTable.DeleteAsync(obj);

要删除项目并返回自定义回复,您可以按如下方式更改操作:

//DELETE tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
public async Task<string> DeleteTodoItem(string id)
{
    await DeleteAsync(id);
    return id;
}

众所周知,InsertUpdate操作会在操作成功执行后返回相关值。针对您的移动后端的移动客户端操作会在请求失败时抛出异常。我建议您可以使用try-catch封装移动客户端操作并在针对移动应用后端调用CRUD操作时处理异常(例如,记录错误消息或提醒客户端用户),而不是检索http状态代码。