„Einer der Anforderungseingaben ungültig“ Fehler beim Versuch, Azure Tabellen Speicher zu aktualisieren
-
25-09-2019 - |
Frage
Ich bin versucht, einen Eintrag in Azure Tabellen Speicher zu aktualisieren. Die Funktion ist:
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();
}
Wenn es ein neuer Eintrag (der „bug.RowKey == null“ Pfad) ist, dann funktioniert es gut. Wenn es sich um ein Update zu einem bestehenden Objekt, dann ist die „AttachTo“ und die „Update“ nennt Arbeit, aber wenn es um „Savechanges“ bekommt, wirft er die „Einer der Anforderungseingaben ungültig“ Ausnahme.
Die Klasse, die gespeichert wird, ist:
[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; }
}
Wer weiß, was das Problem ist?
Vielen Dank für jede Hilfe.
Lösung
Falls sich jemand für die Antwort suchen:
Arbeiten durch den Tabellenkontext, hatte ich den Anruf ändern von:
_context.AttachTo(c_TableName, bug);
zu:
_context.AttachTo(c_TableName, bug, "*");
Andere Tipps
Sie können auch diese Fehlermeldung erhalten, wenn Sie versehentlich den RowKey auf einen Wert eingestellt Sie bereits verwendet haben (nicht, dass Sie dieses Problem mit dem Code in der Frage bekommen würden). Ich habe versucht, über 50 Einheiten auf einmal zu drücken und hatte versehentlich den RowKey auf den gleichen Wert für zwei der Einheiten.