TableOperation.Merge: Aggiornamenti del TableStorage

Hai un record (o più di uno) nel tuo TableStorage e desideri effettuare l’update del valore al suo interno? L’operazione è davvero molto semplice e per farlo utilizzeremo TableOperation.Merge che permette in pochissime righe di codice di raggiungere il nostro scopo. Se -invece dell’update- desideri effetturare una INSERT all’interno del tuo TableStorage ti invito a leggere l’articolo " Azure Table Storage: inserimento massivo di dati " scritto proprio a tale scopo.

TableOperation.Merge: 

Guardando la documentazione ufficiale Microsoft il TableOperation.Merge viene definito nel seguente modo:

Creates a new table operation that merges the contents of the given entity with the existing entity in a table.

Cosa significa? Quando lo si esegue lui effettua il merge tra i valori presenti nel TableStorage ed i nuovi valori da noi forniti.

TableOperation.Merge: Uso Pratico

Nell’esempio proposto in seguito il mio scopo era davvero semplice. Aggiornare il valore di un bool da false a true. Per evitare di scrivere più volte lo stesso codice anche in futuro ho deciso di renderlo generico ed inserirlo all’interno del mio componente condiviso tra i miei progetti.

Per fare questo update … eehm TableOperation.Merge di cosa ho bisogno?

  • string connection: La ConnectionString del nostro TableStorage

  • string tableName: Il nome della tabella da aggiornare

  • string partitionKey: La PartionKey nel quale è memorizzato il nostro record da aggiornate

  • string rowKey: La RowKey associata al nostro record

  • string columnToUpdate: il nome della colonna (Proprietà) da aggiornare

  • bool valueToSet: il nuovo valore da associare

Una volta che avrete tutti questi parametri è possibile chiamare il metodo scritto di seguito per effettuare l’aggiornamento.

TableOperation.Merge: Conclusioni Finali

Prima di chiudere l’articolo volevo segnalarvi di fare attenzione ad un dettaglio. Nel momento in cui passate:

  • string partitionKey
  • string rowKey

La coppia DEVE esistere all’interno della tableName indicata. In caso di non presenza della coppia, riceverete una bellissima Exception e personalmente non ho voluto gestirla proprio per scoprire eventuali anomalie all’interno del workflow di dati tra Azure Function ed un Web Client.