Error en inserción de una Entidad de tipo Azure Table

Error molesto y puñetero cuando quiero insertar un nuevo registro en mi flamante tabla de Azure Table.

Y que es una tontería del tamaño de una catedral, pero que hace perder esos valiosos minutos que siempre tengo previsto no tener que consumir en chorradillas como esta.

Tengo una entidad del tipo TableEntity con un solo y único campo. Y, para hacer un desarrollo más seguro, en el constructor le inicializo las claves de PartitionKey y RowKey (este último con un clave única).

public class PedidoEntity: TableEntity
{
public string IdVehiculo { get; set; }

public PedidoEntity()
{
PartitionKey = "Pedido";
RowKey = Guid.NewGuid().ToString();
}
}

El problema es que cuando le digo a mi código de persistencia, que me guarde esta entidad en AzureTable, me da un pete diciendo que está mal construido el request.

public async Task<string> Put(TableEntity entity)
{
TableOperation insertOperation = TableOperation.InsertOrReplace(entity);
var resultado = await _tableContainer.ExecuteAsync(insertOperation);
return resultado.HttpStatusCode.ToString();
}

¿Y eso a qué se refiere?

Pues se me encendió la bombilla y me acordé que por defecto, al crear un nuevo objeto de tipo EntityTable, los valores de las propiedades del tipo DateTime se rellenan con el valor DateTime.Min()… el cual no es aceptado por la API de Azure Table, y es la causa del fallo.

Así, si completo mi constructor con la inicialización del campo Timestamp (o cualquier otra propiedad de este tipo), todo vuelve a funcionar como la seda.

public PedidoEntity()
{
PartitionKey = "Pedido";
RowKey = Guid.NewGuid().ToString();
Timestamp = DateTime.Now;
}

Espero que sea de utilidad.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s