Operaciones CRUD en Azure Table Storage con C#
Clase 17 de 22 • Curso de Almacenamiento en Azure
¿Insertaste ya tu entidad como en el video? ¿Eres feliz de que pudiste lograr la inserción de la entidad? Bueno, pues ya llevas la mitad, vamos ahora por las siguientes operaciones. Solo verifica que tu entidad está por ahora ya visible en el portal de Azure. Para hacerlo, debes ir al portal y seleccionar tu base de datos de CosmosDB y elegir la opción de exploración de datos.
Con tu entidad lista ahora podemos comenzar a ver las siguientes dos operaciones restantes. Aprovecha la entidad que ya creaste para seguir con la siguiente operación. La de inserción fue la que ya hicimos. Podemos ver en el portal a tu nueva entidad y guardaremos para el final la operación de lectura.
Comencemos con la operación para actualizar el registro recién creado. Para hacer eso lo único que debes hacer es modificar los datos de tu contacto recién creado.
{ Contacto contacto = new Contacto("Espinoza", "Miranda") { Email = "miranda@outlook.com", Telefono = "8118748461" }; TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(contacto); TableResult result = await table.ExecuteAsync(insertOrMergeOperation); Contacto insertedCustomer = result.Result as Contacto; Console.WriteLine("Entidad modificada"); }
Nota que solo modifiqué un par de dígitos del contacto para ver que si haya un cambio. ¡Ah! Si, también modifiqué el mensaje de la consola para avisar que el registro fue modificado. Ejecuta tu aplicación y ve a tu portal de Azure, podrás ver el cambio reflejado ahí.
Bastante sencillo ¿no es así? El mismo método te permite insertar o actualizar y eso es fenomenal en términos de reutilización de código, sin embargo, debes notar también que si no cuidas tu código y no generas una nueva entidad lo que sucederá es que puedes reemplazar accidentalmente un registro en lugar de crear uno nuevo así que ten mucho cuidado. Vamos ahora con la operación de lectura, es decir, la operación que debe mostrar en mi aplicación el registro que tengo en la base de datos. No hay mucha ciencia aquí, solo usas un objeto de tipo TableOperation, y con este objeto podemos buscar a nuestro elemento. Estaría muy bien que jugaras con esta línea para no solo obtener un registro sino todos en una lista. ¿Qué tendrías que hacer aquí? En fin, el resultado de la operación se va a un objeto TableResult que es de donde puedes obtener el resultado para mostrar en la terminal.
{ TableOperation retrieveOperation = TableOperation.Retrieve<Contacto>("Espinoza", "Miranda"); TableResult result = await table.ExecuteAsync(retrieveOperation); Contacto customer = result.Result as Contacto; if (customer != null) { Console.WriteLine("{0}\t{1}\t{2}\t{3}", customer.PartitionKey, customer.RowKey, customer.Email, customer.Telefono); } }
Al ejecutar tu aplicación, el resultado en tu terminal debe ser parecido a esto.
Ya tenemos tres de las cuatro operaciones básicas. Vamos con la final y la más triste de todas. La operación de eliminar. Aquí esencialmente se repite lo mismo.
{ Contacto contacto = new Contacto("Espinoza", "Miranda") { Email = "miranda@outlook.com", Telefono = "8118748461", ETag = "*" }; TableOperation deleteOperation = TableOperation.Delete(contacto); TableResult result = await table.ExecuteAsync(deleteOperation); Console.WriteLine("Resultado de la operación: " + result.RequestCharge); }
La gran diferencia es que entre las propiedades de tu nueva entidad debes agregar una propiedad adicional llamada ETag, nunca he sabido la razón exacta alguien una vez me dijo que se trataba de una medida de seguridad para evitar borrar accidentalmente, alguien también me dijo que se trataba de algo legado de las primeras versiones de almacenamiento. De una u otra manera solo agrega esta propiedad y después de eso regresa a tu portal. Verás que tu carpeta está vacía.
De esta manera es que podrás ejecutar cualquiera de todas tus operaciones básicas de edición en Table Storage ¡Diviértete comenzando a hacer procesos más complejos!