gpt4 book ai didi

c# - 通过 TableController 更新 Azure 移动后端表中的记录

转载 作者:行者123 更新时间:2023-11-30 23:05:12 30 4
gpt4 key购买 nike

我创建了从TableController继承的WorkTableController.cs(用于使用Azure的离线同步)。

   // PATCH tables/Work/48D68C86-6EA6-4C25-AA33-223FC9A27959
public Task<Work> PatchWork(string id, Delta<Work> patch)
{
return UpdateAsync(id, patch);
}

// POST tables/Work
public async Task<IHttpActionResult> PostWork(Work item)
{
WorkOrder current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}

我还创建了 AppServiceAccess.cs 以从 WorkTableController.cs 调用 api

.....
client = new RestClient(appServiceUrl);
client.AddDefaultHeader("ZUMO-API-VERSION", "2.0.0");
client.Authenticator = new RestSharp.Authenticators.OAuth2AuthorizationRequestHeaderAuthenticator(result.AccessToken);

public static IRestResponse SendPostRequest(string url, object bodyParameter)
{
var request = new RestRequest(url, Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddBody(bodyParameter);
return client.Execute(request);
}

public static IRestResponse SendPatchRequest(string url, object bodyParameter)
{
var request = new RestRequest(url, Method.PATCH);
request.RequestFormat = DataFormat.Json;
request.AddBody(bodyParameter);
return client.Execute(request);
}

我可以通过调用 SendPostRequest() 将数据插入数据库中的 Work 表,没问题。但我无法通过调用 SendPatchRequest() 来更新表 Work 中的任何记录。

你能给我一个解决方案吗?我的代码问题出在哪里?如何使用TableController更新Azure移动后端表中的记录?

最佳答案

更新操作请求如下所示:

PATCH https://{your-app-name}.azurewebsites.net/tables/{table-name}/{id}
Body: json payload

根据您的代码,代码如下所示:

var client = new RestClient("https://{your-app-name}.azurewebsites.net");
client.AddDefaultHeader("ZUMO-API-VERSION", "2.0.0");
var request = new RestRequest("tables/Work/81c0ca73-e554-4166-a016-c80591bf5924", Method.PATCH);
request.RequestFormat = DataFormat.Json;
request.AddBody(new
{
text="hello world"
});
var result= client.Execute(request);

对于您的 SendPatchRequest 方法,参数 url 需要如下所示:

tables/{table-name}/{record-Id}

更新:

您可以在移动应用后端的 Startup.MobileApp.cs 下将 config.IncludeErrorDetailPolicy 设置为 IncludeErrorDetailPolicy.Always 以检索详细信息错误消息来解决此问题。我只是用postman模拟了补丁操作,如下:

enter image description here

关于c# - 通过 TableController 更新 Azure 移动后端表中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48945178/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com