azure - 尝试更新 Azure 表存储时出现 "One of the request inputs not valid"错误

标签 azure azure-storage azure-table-storage

我正在尝试更新 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; }
}

有人知道问题出在哪里吗?

感谢您的帮助。

最佳答案

如果有人正在寻找答案:

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, "*"); 

关于azure - 尝试更新 Azure 表存储时出现 "One of the request inputs not valid"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608044/

相关文章:

azure - 支持多个环境时使用 Azure AD 的正确方法是什么?

c# - 部署在本地sql server management studio的azure数据库的数据库备份

java - 在 Java 中生成 SAS token 以下载 Azure 数据存储容器中的文件

mysql - Windows Azure 表存储和身份验证,每秒超过 100 次点击

azure - 如何执行 Windows Azure 备份?

azure - secret 名称不支持特殊字符

c# - Azure 表存储的 BotAuth 错误

mongodb - Azure 数据工厂中的条件映射

c# - Azure存储错误: "An attempt was made to access a socket in a way forbidden by its access permissions."

Azure Devops 多阶段 YAML 管道 - 使用前一阶段状态作为变量