【问题标题】:"One of the request inputs not valid" error when attempting to update Azure Table Storage尝试更新 Azure 表存储时出现“请求输入之一无效”错误
【发布时间】:2011-02-06 04:10:32
【问题描述】:

我正在尝试更新 Azure 表存储中的条目。功能是:

public void SaveBug(DaBug bug)
        {
            bug.PartitionKey = "bugs";
            bug.Timestamp = DateTime.UtcNow;

            if (bug.RowKey == null || bug.RowKey == string.Empty)
            {
                bug.RowKey = Guid.NewGuid().ToString();

                _context.AddObject(c_TableName, bug);
            }
            else
            {
                _context.AttachTo(c_TableName, bug);
                _context.UpdateObject(bug);
            }

            _context.SaveChanges();
        }

如果它是一个新条目(“bug.RowKey == null”路径),那么它工作正常。如果它是对现有实体的更新,则“AttachTo”和“UpdateObject”调用工作,但是当它到达“SaveChanges”时,它会抛出“一个请求输入无效”异常。

正在存储的类是:

[DataContract]
[DataServiceKey("RowKey")]
public class DaBug
{
    [DataMember]
    public bool IsOpen { get; set; }
    [DataMember]
    public string Title { get; set; }
    [DataMember]
    public string Description { get; set; }
    [DataMember]
    public string SubmittedBy { get; set; }
    [DataMember]
    public DateTime SubmittedDate { get; set; }
    [DataMember]
    public string RowKey { get; set; }

    public DateTime Timestamp { get; set; }
    public string PartitionKey { get; set; }
}

有谁知道问题出在哪里?

感谢您的帮助。

【问题讨论】:

  • Timestamp 属性应该在服务器端填充,不确定您的客户端代码是否有 DateTime.Now 用于任何目的。

标签: azure azure-storage azure-table-storage


【解决方案1】:

如果有人正在寻找答案:

http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/0c9d476e-7970-422a-8b34-e987e41734df


通过表格上下文,我不得不更改调用:

_context.AttachTo(c_TableName, bug); 

到:

_context.AttachTo(c_TableName, bug, "*"); 

【讨论】:

  • 感谢您在我没有头发可拔之前救了我。我继续将实际答案复制到您自己的答案中。
  • 当我访问 MSDN 链接时,页面返回“未授权”错误。您能否提供另一个链接或更详细的解释说明为什么需要这种解决方法?
【解决方案2】:

如果您错误地将 RowKey 设置为您已经使用过的值,您也可能会收到此错误(并不是说您会在问题中的代码中遇到此问题)。我尝试一次推送 50 多个实体,但不小心将其中两个实体的 RowKey 设置为相同的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多