условие ключа запроса не поддерживается между c # AWS Dynomodb - PullRequest
0 голосов
/ 28 июня 2018

Я получаю результат от dynomoDb с помощью QueryRequest. Если я отправляю только emp_id, он возвращает результат. Предположим, если я передаю еще один параметр запроса, он возвращает

условие ключа запроса не поддерживается

Пожалуйста, проверьте указанный ниже код, дайте мне знать, если есть какая-либо ошибка в этом.

 var _request = new QueryRequest
            {
                TableName = "Attendence",
                KeyConditionExpression = "Roster_EmpID = :Roster_EmpID and Roster_CreatedDateTime between :v_start and :v_end",
                ExpressionAttributeValues = new Dictionary<string, AttributeValue> {
                    {":Roster_EmpID", new AttributeValue {  S = result.empId    }}
                    ,{":v_start", new AttributeValue {   S = result.fromDate.ToString(AWSSDKUtils.ISO8601DateFormat)  }}
                    ,{":v_end", new AttributeValue { S = result.toDate.ToString(AWSSDKUtils.ISO8601DateFormat)    }}
                },
                IndexName = "Roster_EmpID-index"
            };

Даже если я передаю формат даты aws (AWSSDKUtils.ISO8601DateFormat), решение найти сложно. Пожалуйста, помогите мне найти проблему.

1 Ответ

0 голосов
/ 29 июня 2018

Мы можем использовать фильтр

            var _request = new QueryRequest
            {
                TableName = "Attendence",
                KeyConditionExpression = "Roster_EmpID = :Roster_EmpID",// and Roster_Date between :v_start and :v_end",
                FilterExpression = "Roster_Date between :v_start and :v_end",
                ExpressionAttributeValues = new Dictionary<string, AttributeValue> {
                    {":Roster_EmpID", new AttributeValue {  S = result.empId    }}
                    ,{":v_start", new AttributeValue {   S = result.fromDate.ToString(AWSSDKUtils.ISO8601DateFormat)  }}
                   ,{":v_end", new AttributeValue { S = result.toDate.ToString(AWSSDKUtils.ISO8601DateFormat)    }}
                },
                IndexName = "Roster_EmpID-index"
            };

В противном случае необходимо создать индекс с помощью ключа сортировки add и использовать это имя индекса.

Образец изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...