«Один из входов запроса не действительна» при попытке обновления хранения Azure таблицы
-
25-09-2019 - |
Вопрос
Я пытаюсь обновить запись в хранилище 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; }
}
Кто-нибудь знает, в чем проблема?
Спасибо за любую помощь.
Решение
В случае, если кто-то ищет ответ:
Работая через контекст таблицы, я должен был изменить звонок от:
_context.AttachTo(c_TableName, bug);
к:
_context.AttachTo(c_TableName, bug, "*");
Другие советы
Вы также можете получить эту ошибку, если вы ошибаетесь настроите кнопку на значение, которое вы уже использовали (не то, что вы получите эту проблему с кодом в вопросе). Я пытался протолкнуть 50+ объектов в одну и случайно имел ударную кейку, установленную на то же значение для двух объектов.