尝试更新Azure表存储时,"其中一个请求输入无效"错误

Sak*_*o73 4 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();
        }
Run Code Online (Sandbox Code Playgroud)

如果它是一个新条目("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; }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道问题是什么?

谢谢你的帮助.

Sak*_*o73 6

如果有人在寻找答案:

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


通过表格上下文,我不得不改变呼叫:

_context.AttachTo(c_TableName, bug); 
Run Code Online (Sandbox Code Playgroud)

至:

_context.AttachTo(c_TableName, bug, "*"); 
Run Code Online (Sandbox Code Playgroud)

  • 当我访问MSDN链接时,页面返回"未授权"错误.您能否提供其他链接或更详细解释为何需要此解决方法? (2认同)