Visual Studio 2017 UWP C#プロジェクトでDynamoDB Query発行する場合
DynamoDBのQueryを発行する場合、QueryRequest.KeyConditionExpression
に条件を書きます。条件に変数が必要ですが、その変数はExpressionAttributeValues
に設定します。
Itemデータを取得する処理はラムダで処理できるように先に定義しておきます。
public delegate void Proc<in T>(T arg1); private void ItemForeach(List<Dictionary<string, AttributeValue> > item_, Proc<KeyValuePair<string, AttributeValue> > proc) { foreach (var rec_ in item_) { foreach (var col_ in rec_) { proc(col_); } } }
クリックイベント部分のコード
private async void Button_Click(object sender, RoutedEventArgs e) { var qres = (await new AmazonDynamoDBClient("キー", "パスワード", new AmazonDynamoDBConfig { RegionEndpoint = RegionEndpoint.APNortheast1 }).QueryAsync(new QueryRequest{ TableName = "テーブル名", KeyConditionExpression = "c1 = :c1 and begins_with(c2, :c2) ", ExpressionAttributeValues = new Dictionary<string, AttributeValue> { {":c1", new AttributeValue{S="文字1"} }, {":c2", new AttributeValue{S="文"} } } })); ItemForeach(qres.Items, (KeyValuePair<string, AttributeValue> col_)=>{ string str_item = "キー: " + col_.Key + " = "; if (col_.Value.N != null) str_item += col_.Value.N; if (col_.Value.S != null) str_item += col_.Value.S; ListView1.Items.Add(str_item); }); }