2017-09-27 3 views
0

en utilisant C#, le code est comme celimite ne fonctionne pas lorsque la requête avec context.fromquery dans DynamoDB

 DynamoDBContext context = new DynamoDBContext(client, new DynamoDBContextConfig() { TableNamePrefix = "lalala" }); 

     QueryFilter filter = new QueryFilter(); 
     filter.AddCondition("Userid", QueryOperator.Equal, "hashkeyvalue"); 
     QueryOperationConfig queryConfig = new QueryOperationConfig 
     { 
      Filter = filter, 
      Select = SelectValues.AllProjectedAttributes, 
      Limit = 1, 
      IndexName = "Userid-UpdatedAtTimestamp-index" 
     }; 
     try 
     { 
      var result = await context.FromQueryAsync<IAPRecord>(queryConfig).GetRemainingAsync(); 
      int ccc = result.Count; 
     } 
     catch (Exception ex) 
     { 
      throw new ArgumentException(ex.Message + ex.InnerException); 
     } 

et ccc devrait être 1 mais maintenant égal à l'ensemble comme si la limite = 1 n'existe pas.

Besoin d'aide !!

Répondre

0

résolus.

var query = context.FromQueryAsync<IAPRecord>(queryConfig); 
var result = await query.GetNextSetAsync(); 
int ccc = result.Count; 

Apparemment GetRemainingAsync obtiendrez tous les résultats, peu importe combien vous définissez le paramètre de limite dans la requête. Au lieu de cela, nous devrions utiliser GetNextSetAsync.