private async Task UpdateEntity(CloudTable table, DynamicTableEntity entity)
 {
     try
     {
         await table.ExecuteAsync(TableOperation.Merge(entity)).ConfigureAwait(false);
         return;
     }
     catch(StorageException ex)
     {
         if(!Helper.IsError(ex, "EntityTooLarge"))
             throw;
     }
     var serialized = entity.Serialize();
     Configuration
             .GetBlocksContainer()
             .GetBlockBlobReference(entity.GetFatBlobName())
             .UploadFromByteArray(serialized, 0, serialized.Length);
     entity.MakeFat(serialized.Length);
     await table.ExecuteAsync(TableOperation.InsertOrReplace(entity)).ConfigureAwait(false);
 }
Пример #2
0
        public void CanSerializeDeserializeTableEntity()
        {
            DynamicTableEntity entity = new DynamicTableEntity("partition", "row");
            entity.Properties.Add("propertyname", new EntityProperty("propertyvalue"));
            var val = entity.Serialize();

            DynamicTableEntity entity2 = new DynamicTableEntity();
            entity2.Deserialize(val);

            Assert.Equal("partition", entity2.PartitionKey);
            Assert.Equal("row", entity2.RowKey);
            Assert.Equal("propertyvalue", entity2.Properties["propertyname"].StringValue);
            Assert.True(entity2.Serialize().SequenceEqual(entity.Serialize()));
        }