Atributos do DynamoDB - Amazon DynamoDB

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 classe Developer, ela também será mapeada na tabela People. Ambos os objetos Developer e Lead são armazenados na tabela People.

  • O atributo DynamoDBTable também pode ser sobrescrito. No exemplo de código C# a seguir, a classe Manager herda da classe Developer. No entanto, a adição explícita do atributo DynamoDBTable 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.