Beispiel #1
0
        public static DynamicTableEntity ToDynamicTableEntity(TableEntity entity)
        {
            DynamicTableEntity dynentity
                = new DynamicTableEntity
                {
                PartitionKey = entity.PartitionKey,
                RowKey       = entity.RowKey,
                ETag         = entity.ETag,
                Timestamp    = entity.Timestamp
                };

            foreach (PropertyInfo info in entity.GetType().GetProperties())
            {
                if (IsEntityProperty(info))
                {
                    var            val      = info.GetValue(entity, null);
                    EntityProperty property = CreateEntityPropertyFromObject(val, false);
                    if (property != null)
                    {
                        dynentity.Properties.Add(info.Name, property);
                    }
                }
            }

            return(dynentity);
        }
        /// <summary>
        /// Insert entity in to azure table
        /// </summary>
        /// <param name="entity">table entity</param>
        public void InsertEntity(TableEntity entity)
        {
            this.tableName = entity.GetType().Name;
            this.table     = this.tableClient.GetTableReference(this.tableName);
            this.table.CreateIfNotExists();

            TableOperation insertOperation = TableOperation.InsertOrReplace(entity);

            this.table.Execute(insertOperation);
        }
        public void AddEntity(TableEntity entity)
        {
            if (entity == null)
            {
                return;
            }

            var insertOperation = TableOperation.Insert(entity);

            GetTable(entity.GetType(), true).Execute(insertOperation);
        }
        public void DoOperation(TableEntity entity, Func <TableEntity, TableOperation> operation)
        {
            if (entity == null)
            {
                return;
            }

            var originType = entity.GetType();

            if (!string.IsNullOrEmpty(entity.ETag))
            {
                GetTable(originType).Execute(operation(entity));
            }
            else
            {
                _GetEntity <TableEntity>(entity.PartitionKey, entity.RowKey, originType);
                GetTable(originType).Execute(operation(entity));
            }
        }