У меня есть таблица 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 не отображал запрошенные элементы?