Atributos do DynamoDB
Esta seção descreve os atributos oferecidos pelo modelo de persistência objetos para que você possa mapear suas classes e propriedades em tabelas e atributos do DynamoDB.
nota
Nos seguintes atributos, apenas DynamoDBTable
e DynamoDBHashKey
são necessários.
DynamoDBGlobalSecondaryIndexHashKey
Mapeia uma propriedade de classe na chave de partição de um índice secundário global. Use esse atributo se você precisa realizar uma Query
em um índice secundário global.
DynamoDBGlobalSecondaryIndexRangeKey
Mapeia uma propriedade de classe na chave de classificação de um índice secundário global. Use esse atributo se você precisa realizar uma operação Query
em um índice secundário global e deseja refinar seus resultados usando a chave de classificação de índice.
DynamoDBHashKey
Mapeia uma propriedade de classe para a chave de partição da chave primária da tabela. Os atributos de chave primária não podem ser um tipo de coleção.
Os seguintes exemplos de código C# mapeiam a classe Book
na tabela ProductCatalog
e a propriedade Id
na chave de partição da chave primária da tabela.
[DynamoDBTable("ProductCatalog")] public class Book { [DynamoDBHashKey] public int Id { get; set; } // Additional properties go here. }
DynamoDBIgnore
Indica que a propriedade associada deve ser ignorada. Se não desejar salvar nenhuma das suas propriedades de classe, você poderá adicionar esse atributo para instruir DynamoDBContext
a não incluir essa propriedade ao salvar objetos na tabela.
DynamoDBLocalSecondaryIndexRangeKey
Mapeia uma propriedade de classe na chave de classificação de um índice secundário local. Use esse atributo se você precisa realizar uma operação Query
em um índice secundário local e deseja refinar seus resultados usando a chave de classificação de índice.
DynamoDBProperty
Mapeia uma propriedade de classe em um atributo de tabela. Se a propriedade de classe for mapeada em um atributo de tabela com o mesmo nome, não será necessário especificar esse atributo. No entanto, se os nomes não forem iguais, você poderá usar essa tag para fornecer o mapeamento. Na instrução C# a seguir, DynamoDBProperty
mapeia a propriedade BookAuthors
no atributo Authors
na tabela.
[DynamoDBProperty("Authors")] public List<string> BookAuthors { get; set; }
DynamoDBContext
usa essas informações de mapeamento para criar o atributo Authors
ao salvar dados de objetos na tabela correspondente.
DynamoDBRenamable
Especifica um nome alternativo para uma propriedade de classe. Isso é útil quando você está escrevendo um conversor personalizado para o mapeamento de dados arbitrários em uma tabela do DynamoDB na qual o nome de uma propriedade de classe é diferente de um atributo da tabela.
DynamoDBRangeKey
Mapeia uma propriedade de classe na chave de classificação da chave primária da tabela. Se a tabela tiver uma chave primária composta (chave de partição e chave de classificação), você deverá especificar os atributos DynamoDBHashKey
e DynamoDBRangeKey
no seu mapeamento de classes.
Por exemplo, a tabela de exemplo Reply
tem uma chave primária composta pela chave de partição Id
e pela chave de classificação Replenishment
. O exemplo de código C# a seguir mapeia a classe Reply
na tabela Reply
. A definição de classe também indica que duas de suas propriedades são mapeadas para a chave primária.
Para obter mais informações sobre tabelas de exemplo, consulte Criar tabelas e carregar dados para exemplos de código no DynamoDB.
[DynamoDBTable("Reply")] public class Reply { [DynamoDBHashKey] public int ThreadId { get; set; } [DynamoDBRangeKey] public string Replenishment { get; set; } // Additional properties go here. }
DynamoDBTable
Identifica a tabela de destino do DynamoDB na qual a classe é mapeada. Por exemplo, o exemplo de código C# a seguir mapeia a classe Developer
na tabela People
no DynamoDB.
[DynamoDBTable("People")] public class Developer { ...}
Esse atributo pode ser herdado ou substituído.
-
O atributo
DynamoDBTable
pode ser herdado. No exemplo anterior, se você adicionar uma nova classe,Lead
, que herda da classeDeveloper
, ela também será mapeada na tabelaPeople
. Ambos os objetosDeveloper
eLead
são armazenados na tabelaPeople
. -
O atributo
DynamoDBTable
também pode ser sobrescrito. No exemplo de código C# a seguir, a classeManager
herda da classeDeveloper
. No entanto, a adição explícita do atributoDynamoDBTable
mapeia a classe em outra tabela (Managers
).[DynamoDBTable("Managers")] public class Manager : Developer { ...}
É possível adicionar o parâmetro opcional, LowerCamelCaseProperties
, para solicitar que o DynamoDB coloque em minúscula a primeira letra do nome da propriedade ao armazenar os objetos em uma tabela, conforme mostrado no exemplo de código C# a seguir.
[DynamoDBTable("People", LowerCamelCaseProperties=true)] public class Developer { string DeveloperName; ... }
Ao salvar as instâncias da classe Developer
, DynamoDBContext
salva a propriedade DeveloperName
como developerName
.
DynamoDBVersion
Identifica uma propriedade de classe para armazenar o número de versão do item. Para obter mais informações sobre versionamento, consulte Bloqueio positivo usando número de versão com o DynamoDB usando o modelo de persistência de objetos do AWS SDK for .NET.