public QueryTable ( string tableName, string oDataQuery ) : string>>.IEnumerable |
||
tableName | string | |
oDataQuery | string | |
return | string>>.IEnumerable |
public IEnumerable<IDictionary<string, string>> QueryTable(string tableName, string oDataQuery)
{
if (string.IsNullOrWhiteSpace(tableName)) throw new ArgumentNullException("tableName");
Console.WriteLine(tableName);
var table = cloudTableClient.GetTableReference(tableName);
var query = new TableQuery();
if (!string.IsNullOrWhiteSpace(oDataQuery))
{
query.FilterString = oDataQuery;
}
foreach (var entity in table.ExecuteQuery(query))
{
var dictionary = new Dictionary<string, string>();
dictionary.Add("PartitionKey", entity.PartitionKey);
dictionary.Add("RowKey", entity.RowKey);
dictionary.Add("Timestamp", entity.Timestamp.ToString());
//dictionary.Add("Etag", entity.ETag);
foreach (var property in entity.Properties)
{
dictionary.Add(property.Key, property.Value.StringValue);
}
yield return dictionary;
}
}
static int Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Usage: QueryTable tablename"); Console.WriteLine("Usage: QueryTable tablename \"PartitionKey eq '1'\""); return Settings.FAIL; } var tableHelper = new TableHelper(); var query = (args.Length > 1) ? args[1] : ""; var lastKeys = ""; foreach (var entity in tableHelper.QueryTable(args[0], query)) { var keys = string.Join(",", entity.Keys.Select(x => "\"" + x + "\"").ToArray()); if (keys != lastKeys) { // only write out the column headings if the columns have changed Console.WriteLine(keys); lastKeys = keys; } Console.WriteLine(string.Join(",", entity.Values.Select(Escape).ToArray())); } return Settings.SUCCESS; }