DynamoDB. NET модель сопротивления: получить только определенные c атрибуты - PullRequest
1 голос
/ 23 марта 2020

У меня есть таблица DynamoDB с GSI, и мне нужно использовать AWS. NET SDK для получения двух указанных атрибутов c, предпочтительно с использованием модели персистентности. Я создал отдельный класс для этой проекции, например

[DynamoDBTable("MyTable")]
public class MyItem
{
    public long Number{ get; set; }

    public string Name{ get; set; }
}

, но даже когда я указываю SelectValues.SpecificAttributes, чтобы получить только эти атрибуты, кажется, что клиент DynamoDB пытается получить атрибуты первичного ключа (что я нравится избегать) и дает мне исключение Unable to locate property for key attribute <PK hash key attribute name>. Вот код, который я использую для запроса

var keyExpression = new Expression
{
    ExpressionStatement = $"GSI_PK = :pkValue", 
    ExpressionAttributeValues =
    {
        [":pkValue"] = 1
    }
};

db.FromQueryAsync<MyItem>(new QueryOperationConfig
{
    IndexName = "MyIndex",
    KeyExpression = keyExpression,
    Select = SelectValues.SpecificAttributes,
    AttributesToGet = new List<string> { "Number", "Name" }
}

Есть ли способ, чтобы клиент DynamoDB не отображал запрошенные элементы?

...