2

我正在使用 DynamoDB .NET 对象持久性模型来扫描具有以下条件的表。

public IEnumerable<Product> GetProducts(string attribute1Value, string attribute2Value
{
    IEnumerable<Product> products = null;
    try
    {
        RegionEndpoint region = RegionEndpoint.GetBySystemName("us-east-1");
        AmazonDynamoDB client = new AmazonDynamoDBClient(account.AwsAccessKey, account.AwsSecretKey, region);

        DynamoDBContext context = new DynamoDBContext(client);
        products = context.Scan<Product>(
            new ScanCondition("attribute1", ScanOperator.Equal, attribute1Value),
            new ScanCondition("attribute2", ScanOperator.Equal, attribute2Value));

    }
    catch (AmazonServiceException ase)
    {
        log.Error("Amazon Service Exception, Message: " + ase.Message + ", request id: " + ase.RequestId);
    }
    catch (Exception e)
    {
        log.Error("Exception: " + e.Message);
    }
    return products;
}

当我使用 DynamoDBContext 时,如果超过 DynamoDB 设置的 1 MB 限制,我该如何处理输出?谢谢

4

1 回答 1

6

如果您达到 1MB 的限制,DynamoDB 将返回多页项目。DynamoDBContext.Scan 操作将自动分页您的结果集(延迟加载)。因此,从您的角度来看,不需要做任何额外的事情,只需枚举 IEnumerable 对象,所有匹配的项目都将被返回。

于 2012-10-05T19:09:28.443 回答