Classe DynamoDBContext - Amazon DynamoDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Classe DynamoDBContext

A classe DynamoDBContext é o ponto de entrada para do banco de dados do Amazon DynamoDB. Ela fornece uma conexão com o DynamoDB e permite que você acesse seus dados em várias tabelas, realize várias operações CRUD e execute consultas. A classe DynamoDBContext fornece os seguintes métodos:

Criar MultiTable BatchGet

Cria um objeto MultiTableBatchGet formado por vários objetos BatchGet individuais. Cada um desses objetos BatchGet pode ser usado para recuperar itens de uma única tabela do DynamoDB.

Para recuperar os itens das tabelas, use o método ExecuteBatchGet, passando o objeto MultiTableBatchGet como um parâmetro.

Criar MultiTable BatchWrite

Cria um objeto MultiTableBatchWrite formado por vários objetos BatchWrite individuais. Cada um desses objetos BatchWrite pode ser usado para gravar ou excluir itens em uma única tabela do DynamoDB.

Para gravar nas tabelas, use o método ExecuteBatchWrite, passando o objeto MultiTableBatchWrite como um parâmetro.

CreateBatchGet

Cria um objeto BatchGet que você pode usar para recuperar vários itens de uma tabela. Para ter mais informações, consulte Obtenção em lote: obter vários itens .

createBatchWrite

Cria um objeto BatchWrite que você pode usar para inserir vários itens em uma tabela ou para excluir vários itens de uma tabela. Para ter mais informações, consulte Gravação em lote: colocar e excluir vários itens .

Delete

Exclui um item da tabela. O método requer a chave primária do item que você deseja excluir. É possível fornecer o valor da chave primária ou um objeto no lado do cliente que contém um valor de chave primária como um parâmetro para esse método.

  • Se você especificar um objeto no lado do cliente como um parâmetro e tiver habilitado o bloqueio otimista, a exclusão apenas será bem-sucedida se as versões no lado do cliente e no lado do servidor desse objeto corresponderem.

  • Se você especificar somente o valor da chave primária como parâmetro, a exclusão será bem-sucedida, independentemente de você ter habilitado ou não o bloqueio otimista.

nota

Para realizar essa operação em segundo plano, use o método DeleteAsync em vez disso.

Descartar

Descarta todos os recursos gerenciados e não gerenciados.

Execute​batch​get

Lê dados de uma ou mais tabelas, processando todos os objetos BatchGet em um MultiTableBatchGet.

nota

Para realizar essa operação em segundo plano, use o método ExecuteBatchGetAsync em vez disso.

Execute​batch​write

Grava ou exclui dados em uma ou mais tabelas, processando todos os objetos BatchWrite em um MultiTableBatchWrite.

nota

Para realizar essa operação em segundo plano, use o método ExecuteBatchWriteAsync em vez disso.

FromDocument

Considerando uma instância de Document, o método FromDocument retorna uma instância de uma classe no lado do cliente.

Isso será útil se você quiser usar as classes de modelo de documento junto com o modelo de persistência de objetos para realizar qualquer operação de dados. Para obter mais informações sobre as classes do modelo de documento fornecidas pelo AWS SDK for .NET, consulte .NET: modelo de documento.

Suponha que você tenha um objeto Document denominado doc que contém uma representação de um item Forum. (Para ver como construir esse objeto, consulte a descrição do método ToDocument mais adiante neste tópico.) Você pode usar FromDocument para recuperar o item Forum de Document, conforme mostrado no exemplo de código C# a seguir.

exemplo
forum101 = context.FromDocument<Forum>(101);
nota

Se o objeto Document implementar a interface IEnumerable, você poderá usar o método FromDocuments em vez disso. Isso permite uma iteração sobre todas as instâncias da classe em Document.

FromQuery

Executa uma operação Query, com os parâmetros de consulta definidos em um objeto QueryOperationConfig.

nota

Para realizar essa operação em segundo plano, use o método FromQueryAsync em vez disso.

FromScan

Executa uma operação Scan, com os parâmetros de verificação definidos em um objeto ScanOperationConfig.

nota

Para realizar essa operação em segundo plano, use o método FromScanAsync em vez disso.

Get​target​table

Recupera a tabela de destino para o tipo especificado. Isso é útil quando você está escrevendo um conversor personalizado para o mapeamento de dados arbitrários para uma tabela do DynamoDB e precisa determinar qual tabela está associada a um tipo de dados personalizado.

Carregar

Recupera um item de uma tabela. O método requer somente a chave primária do item que você deseja recuperar.

Por padrão, o DynamoDB retorna o item com valores finais consistentes. Para obter informações sobre o modelo final consistente, consulte Consistência de leituras.

nota

Para realizar essa operação em segundo plano, use o método LoadAsync em vez disso.

Consulta

Consulta uma tabela com base em parâmetros de consulta que você fornece.

Você poderá consultar uma tabela somente se ela tiver uma chave primária composta (chave de partição e chave de classificação). Ao consultar, você deve especificar uma chave de partição e uma condição que se aplique à chave de classificação.

Suponha que você tenha uma classe Reply no lado do cliente mapeada na tabela Reply no DynamoDB. O exemplo de código C# a seguir consulta a tabela Reply para encontrar respostas de tópicos de fórum postadas nos últimos 15 dias. A tabela Reply tem uma chave primária com a chave de partição Id e a chave de classificação ReplyDateTime. Para obter mais informações sobre a tabela Reply, consulte Criar tabelas e carregar dados para exemplos de código no DynamoDB.

exemplo
DynamoDBContext context = new DynamoDBContext(client); string replyId = "DynamoDB#DynamoDB Thread 1"; //Partition key DateTime twoWeeksAgoDate = DateTime.UtcNow.Subtract(new TimeSpan(14, 0, 0, 0)); // Date to compare. IEnumerable<Reply> latestReplies = context.Query<Reply>(replyId, QueryOperator.GreaterThan, twoWeeksAgoDate);

Isso retorna uma coleção de objetos Reply.

Por padrão, o método Query retorna uma coleção IEnumerable de "carregamento preguiçoso". Ele inicialmente retorna apenas uma página de resultados e, em seguida, faz uma chamada de serviço para a próxima página, se necessário. Para obter todos os itens correspondentes, você só precisa fazer uma iteração na coleção IEnumerable.

Se a sua tabela tiver uma chave primária simples (chave de partição), você não poderá usar o método Query. Em vez disso, poderá usar o método Load e fornecer a chave de partição para recuperar o item.

nota

Para realizar essa operação em segundo plano, use o método QueryAsync em vez disso.

Save (Salvar)

Salva o objeto especificado na tabela. Se a chave primária especificada no objeto de entrada não existir na tabela, o método adicionará um novo item à tabela. Se a chave primária existir, o método atualizará o item existente.

Se você tiver o bloqueio otimista configurado, a atualização será bem-sucedida apenas se as versões do item no lado do cliente e no lado do servidor corresponderem. Para ter mais informações, 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.

nota

Para realizar essa operação em segundo plano, use o método SaveAsync em vez disso.

Verificar

Realiza uma verificação de tabela inteira.

Você pode filtrar o resultado da verificação especificando uma condição de verificação. A condição pode ser avaliada em qualquer atributo da tabela. Suponha que você tenha uma classe Book no lado do cliente mapeada na tabela ProductCatalog no DynamoDB. O exemplo de código C# a seguir verifica a tabela e retorna apenas os itens de livro com preços inferiores a 0.

exemplo
IEnumerable<Book> itemsWithWrongPrice = context.Scan<Book>( new ScanCondition("Price", ScanOperator.LessThan, price), new ScanCondition("ProductCategory", ScanOperator.Equal, "Book") );

Por padrão, o método Scan retorna uma coleção IEnumerable de "carregamento preguiçoso". Ele inicialmente retorna apenas uma página de resultados e, em seguida, faz uma chamada de serviço para a próxima página, se necessário. Para obter todos os itens correspondentes, basta fazer uma iteração na coleção IEnumerable.

Por motivos de performance, você deve consultar suas tabelas e evitar uma verificação de tabela.

nota

Para realizar essa operação em segundo plano, use o método ScanAsync em vez disso.

ToDocument

Retorna uma instância da classe de modelo de documento Document da sua instância de classe.

Isso será útil se você quiser usar as classes de modelo de documento junto com o modelo de persistência de objetos para realizar qualquer operação de dados. Para obter mais informações sobre as classes do modelo de documento fornecidas pelo AWS SDK for .NET, consulte .NET: modelo de documento.

Suponha que você tenha uma classe de cliente mapeada na tabela de exemplo Forum. É possível usar um DynamoDBContext para obter um item, como um objeto Document da tabela Forum, conforme mostrado no exemplo de código C# a seguir.

exemplo
DynamoDBContext context = new DynamoDBContext(client); Forum forum101 = context.Load<Forum>(101); // Retrieve a forum by primary key. Document doc = context.ToDocument<Forum>(forum101);

Especificar parâmetros opcionais para DynamoDBContext

Ao usar o modelo de persistência de objeto, você pode especificar os seguintes parâmetros opcionais para DynamoDBContext.

  • ConsistentRead: ao recuperar dados usando as operações Load, Query ou Scan, você pode opcionalmente adicionar esse parâmetro para solicitar os valores mais recentes dos dados.

  • IgnoreNullValues: esse parâmetro instrui DynamoDBContext a ignorar valores nulos em atributos durante uma operação Save. Se esse parâmetro for false (ou se não estiver definido), um valor nulo será interpretado como uma diretiva para excluir o atributo específico.

  • SkipVersionCheck: esse parâmetro instrui o DynamoDBContext a não comparar versões ao salvar ou excluir um 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.

  • TableNamePrefix: prefixa todos os nomes de tabelas com uma string específica. Se esse parâmetro for nulo (ou se não estiver definido), nenhum prefixo será usado.

O exemplo de código C# a seguir cria um novo DynamoDBContext especificando dois dos parâmetros opcionais anteriores.

exemplo
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); ... DynamoDBContext context = new DynamoDBContext(client, new DynamoDBContextConfig { ConsistentRead = true, SkipVersionCheck = true});

DynamoDBContext inclui esses parâmetros opcionais com cada solicitação enviada usando esse contexto.

Em vez de definir esses parâmetros no nível de DynamoDBContext, é possível especificá-los para operações individuais que você executa usando DynamoDBContext, conforme mostrado no exemplo de código C# a seguir. O exemplo carrega um item de livro específico. O método Load de DynamoDBContext especifica os parâmetros opcionais anteriores.

exemplo
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); ... DynamoDBContext context = new DynamoDBContext(client); Book bookItem = context.Load<Book>(productId,new DynamoDBContextConfig{ ConsistentRead = true, SkipVersionCheck = true });

Nesse caso, DynamoDBContext inclui esses parâmetros somente ao enviar a solicitação Get.