„Einer der Anforderungseingaben ungültig“ Fehler beim Versuch, Azure Tabellen Speicher zu aktualisieren

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

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.

War es hilfreich?

Lösung

Falls sich jemand für die Antwort suchen:

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


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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top