# DynamoDBStorage.QueryAsync(string, Dictionary&lt;string, AttributeValue&gt;, string, Func&lt;Dictionary&lt;string, AttributeValue&gt;, TResult&gt;, string, bool, Dictionary&lt;string, AttributeValue&gt;, bool)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions.dynamodb/orleans.transactions.dynamodb.dynamodbstorage/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.transactions.dynamodb/orleans.transactions.dynamodb.dynamodbstorage/methods/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/AWS/Shared/Storage/DynamoDBStorage.cs#L730-L764)

```csharp
public Task<(List<TResult> results, Dictionary<string, AttributeValue>? lastEvaluatedKey)> DynamoDBStorage.QueryAsync<TResult>(string tableName, Dictionary<string, AttributeValue> keys, string keyConditionExpression, Func<Dictionary<string, AttributeValue>, TResult> resolver, string indexName = "", bool scanIndexForward = true, Dictionary<string, AttributeValue>? lastEvaluatedKey = null, bool consistentRead = true)
```

Query for multiple entries in a DynamoDB table by filtering its keys

### Parameters

- `tableName` (`string`): The name of the table to search for the entries
- `keys` (`Dictionary<string, AttributeValue>`): The table entry keys to search for
- `keyConditionExpression` (`string`): the expression that will filter the keys
- `resolver` (`Func<Dictionary<string, AttributeValue>, TResult>`): Function that will be called to translate the returned fields into a concrete type. This Function is only called if the result is != null and will be called for each entry that match the query and added to the results list
- `indexName` (`string`): In case a secondary index is used in the keyConditionExpression
- `scanIndexForward` (`bool`): In case an index is used, show if the seek order is ascending (true) or descending (false)
- `lastEvaluatedKey` (`Dictionary<string, AttributeValue>`): The primary key of the first item that this operation will evaluate. Use the value that was returned for LastEvaluatedKey in the previous operation
- `consistentRead` (`bool`): Determines the read consistency model. Note that if a GSI is used, this must be false.

### Returns

The collection containing a list of objects translated by the resolver function and the LastEvaluatedKey for paged results
