ETag non è il timestamp, o almeno non più. C'è un'altra proprietà Timestamp che è quando il record è stato aggiornato l'ultima volta. L'ETag è usato per la concorrenza. Se si carica un'entità tabella e si desidera aggiornarla, si passa ad aggiornare ETag dal momento in cui è stato caricato il valore e si aggiornerà l'entità solo se ETag corrisponde a ciò che è memorizzato.
Perché ti importa? Bene, se più utenti modificano lo stesso articolo su un modulo contemporaneamente, non si desidera che un utente modifichi per sovrascrivere l'altro utente senza che al secondo utente venga notificato che stanno sovrascrivendo i dati che sono stati modificati dal momento in cui sono stati caricati .
Esempio: utente 1 e utente 2 caricano una pagina di modifica allo stesso tempo. L'utente 1 modifica un valore per il campo 1 e salva l'elemento. Dopo che l'utente 2 ha avuto la voce aperta un po 'più lunga, l'utente 2 apporta una modifica al campo 2 non correlato e inconsapevolmente il campo obsoleto 1 viene salvato con il loro aggiornamento. L'utente 2 non sa che sta scartando un cambiamento da parte dell'utente 1 a meno che non lo dica. Quindi, quello che dovresti fare è mostrare un errore che l'utente 1 ha già cambiato e sono sicuri di voler sovrascrivere le modifiche dell'utente 1 o se vogliono vedere prima quelle modifiche.
Questo viene eseguito sia dall'utente 1 che dall'utente 2 che memorizzano ETag da quando il record è stato caricato nascosto sul display del modulo. Quando ogni utente tenta un salvataggio, è possibile passare tale ETag al server con i dati aggiornati. Come ti dice che l'utente 2 sta cambiando un record non aggiornato? Perché ogni modifica di un record aggiorna l'ETag memorizzato per quel record. Quindi, quando l'utente 2 tenta di salvare l'ETag che invii con le loro modifiche non corrisponderà e Azure ti dirà in modo che tu possa gestire ciò che dovrebbe essere fatto.
Ora se non ti interessa che l'utente 2 possa sovrascrivere le modifiche dell'utente 1, passa "*" con il salvataggio e Azure non darà un errore quando ETag non corrisponde.
fonte
2015-01-31 02:25:05
Al momento ETag detiene il timestamp. Ma non dovresti fare affidamento su questo. Potrebbe cambiare in futuro. L'ETag è usato per gestire la concorrenza ottimistica e di solito non dovrebbe essere usato dal tuo codice. Se è necessario il timestamp di utilizzare la proprietà Timestamp. Per maggiori informazioni su ETag, leggere la sezione Note in msdn: http://msdn.microsoft.com/en-us/library/windowsazure/dd179427 – huha