gpt4 book ai didi

c# - 在 Azure 中删除表行时出现 404 错误

转载 作者:行者123 更新时间:2023-12-03 03:16:04 25 4
gpt4 key购买 nike

在 VS2013 的云服务项目中运行此代码时,出现 404 错误。

当我从表中检索不存在的行时,怎么可能删除它?

var routeResultQuery = new TableQuery<RouteResult>(); // I deleted where caluse for brevity
var results = resultTable.ExecuteQuery<RouteResult>(routeResultQuery).ToList();

if (results.Count() > 0) // The count shows 26 element when debugging
{
foreach(RouteResult rr in results)
{
var op = TableOperation.Delete(rr);
resultTable.Execute(op); // The error happens here
}
}

最佳答案

原来是我表设计不好,导致检索方法构造RowKey时被覆盖了两次。

public class RouteResult : TableEntity
{

public string Session
{
get
{
return PartitionKey;
}

set
{
RowKey = value + "-" + DateTime.UtcNow.Ticks; // The issue is here
PartitionKey = value;
}
}
}

问题实际上并不在于覆盖操作,而在于变量值 DateTime.UtcNow.Ticks 导致不同的 RowKey,因此未找到 404。

我将表格更改为:

public class RouteResult : TableEntity
{
public RouteResult(string sessionId)
{
RowKey = sessionId + "-" + Guid.NewGuid();
PartitionKey = sessionId;
}

public RouteResult()
{

}
}

现在一切都好了。

关于c# - 在 Azure 中删除表行时出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26095516/

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