//public override int Update(string tableName, IDictionary<string, object> data)
        //{
        //    var table = GetTable(tableName);
        //    table.UpdateRow(data);
        //    return 1;
        //}

        public override int Delete(string tableName, SimpleExpression criteria)
        {
            var table = GetTable(tableName);
            var keys = criteria.TryGetKeyCombo();
            if (keys != KeyCombo.Empty && !string.IsNullOrEmpty(keys.RowKey))
            {
                table.Delete(keys.PartitionKey, keys.RowKey);
                return 1;
            }

            var dict = criteria.ToDictionary();
            if (dict != null && dict.ContainsKey(PartitionKey) && dict.ContainsKey(RowKey))
            {
                table.Delete(dict[PartitionKey].ToStringOrEmpty(), dict[RowKey].ToStringOrEmpty());
                return 1;
            }

            int count = 0;
            foreach (var row in Find(tableName, criteria))
            {
                table.Delete(row);
                ++count;
            }
            return count;
        }