AWS DynamoDB:查询适用于控制台,但不适用于 .NET 代码

AWS DynamoDB: query works on the console but not on .NET Code

我有一个 DynamoDB 查询,它在 AWS 控制台上运行良好,但在代码上运行不正常。

这是我在控制台上的查询:

现在这是我查询它的 C# 代码:

var query = new QueryOperationConfig
            {
                KeyExpression = new Expression
                {
                    ExpressionStatement = "#pkey = :v_pkey and #skey >= :v_skey",
                    ExpressionAttributeNames = {
                        { "#pkey", "MailingId" },
                        { "#skey", "RegistroCarteiraId" },
                    },
                    ExpressionAttributeValues = new Dictionary<string, DynamoDBEntry>()
                    {
                        { ":v_pkey", new Primitive("62", true) },
                        { ":v_skey", new Primitive("00e0bbfc-aed0-4f0e-acef-a3623a9f9694") },
                    },
                },
                BackwardSearch = false,
                ConsistentRead = true,
                Limit = 1,
                FilterExpression = new Expression
                {
                    ExpressionStatement = "#psituacao = :v_psituacao and attribute_not_exists(#pdisponibilidade)",
                    ExpressionAttributeNames =
                    {
                        { "#psituacao", "Situacao" },
                        { "#pdisponibilidade", "Disponibilidade" }
                    },
                    ExpressionAttributeValues =
                    {
                        { ":v_psituacao", new Primitive("1", true) },
                    }
                }
            };

            var search = table.Query(query);
            var docs = await search.GetNextSetAsync();

我没有收到任何错误,结果只有一个空数组。如果我将排序键更改为不同的值,它会起作用,但对于这个特定值它不会...

我已经弄了一整天了,没弄明白哪里出了问题。

任何帮助将不胜感激。

谢谢

问题是 LIMIT 1

正如我发现的那样,过滤器只发生在获取的项目上,并且由于我只获取了 1 个项目,当发生过滤时,结果没有符合条件的记录。

删除限制 1 解决了问题。