public int Update(Table table, IDictionary<string, object> data, SimpleExpression criteria) { var keys = criteria.TryGetKeyCombo(); if (keys != KeyCombo.Empty) { UpdateRow(table, keys, data); return 1; } int count = 0; foreach (var matchingRow in _adapter.Find(table.TableName, criteria)) { UpdateRow(table, KeyCombo.FromDictionary(matchingRow), data); ++count; } return count; }
//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; }