errore “Uno degli ingressi di richiesta non valida” quando si tenta di aggiornare Azure Storage Table

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

Domanda

Sto tentando di aggiornare una voce in Azure Storage Table. La funzione è:

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();
        }

Se si tratta di una nuova voce (il percorso "bug.RowKey == null"), allora funziona benissimo. Se si tratta di un aggiornamento a un'entità esistente, poi il "AttachTo", e la "updateObject" le chiamate di lavoro, ma quando si arriva a "SaveChanges", getta la "Uno degli ingressi di richiesta non valida" eccezione.

La classe che si sta memorizzato è:

[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; }
}

Qualcuno sa qual è il problema?

Grazie per qualsiasi aiuto.

È stato utile?

Soluzione

Nel caso qualcuno è alla ricerca di una risposta:

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


di lavoro attraverso il contesto tavolo, ho dovuto cambiare la chiamata da:

_context.AttachTo(c_TableName, bug); 

a:

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

Altri suggerimenti

Si può anche ottenere questo errore se si imposta erroneamente il RowKey per un valore hai già provato (non che si otterrebbe questo problema con il codice in questione). Ho cercato di spingere 50+ entità in una sola volta e per caso aveva il set RowKey per lo stesso valore per due dei soggetti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top