«Один из входов запроса не действительна» при попытке обновления хранения Azure таблицы

StackOverflow https://stackoverflow.com/questions/2608044

Вопрос

Я пытаюсь обновить запись в хранилище 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» и вызовы "updatebject", но когда он попадает в «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/thrad/0c9d476e-7970-422a-8b34-e987e41734df.


Работая через контекст таблицы, я должен был изменить звонок от:

_context.AttachTo(c_TableName, bug); 

к:

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

Другие советы

Вы также можете получить эту ошибку, если вы ошибаетесь настроите кнопку на значение, которое вы уже использовали (не то, что вы получите эту проблему с кодом в вопросе). Я пытался протолкнуть 50+ объектов в одну и случайно имел ударную кейку, установленную на то же значение для двух объектов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top