Working With MongoDB Transactions With C# and the .NET Framework
Avalie esse Tutorial
Atualização 10/2019: o exemplo de código deste artigo foi atualizado para incluir o tratamento necessário do identificador de sessão para métodos de banco de dados.
Aplicativos C# conectados a um MongoDB database usam o driver MongoDB .NET. Para adicionar o driver .NET ao seu aplicativo Visual Studio, no NuGet Package Manager, pesquise "MongoDB".
Certifique-se de escolher a versão mais recente (>=2.7) do driver e pressione Install).
Antes da versão 4.0 do MongoDB, o MongoDB era transacionalmente consistente no nível do documento. Essas operações atômicas de documento único existentes fornecem a semântica de transação para atender às necessidades de integridade de dados da maioria dos aplicativos. Isso ocorre porque a flexibilidade do document model permite que os desenvolvedores incorporem facilmente dados relacionados a uma entidade como arrays e subdocumentos em um único documento avançado. Dito isto, há alguns casos em que a divisão do conteúdo em duas ou mais coleções seria apropriada e, para esses casos, as transações ACID de vários documentos tornam mais fácil do que nunca para os desenvolvedores abordarem toda a gama de casos de uso com o MongoDB . Para obter uma discussão mais detalhada sobre o design do document model do MongoDB, incluindo como representar relacionamentos um-para-muitos e muitos-para-muitos, confira este artigo sobre design de modelos de dados.
No código a seguir, criaremos um objeto Produto e executaremos uma transação no MongoDB que inserirá alguns dados de exemplo no MongoDB e, em seguida, atualizará os preços de todos os produtos em 10%.
- Você não precisa combinar propriedades de classe com objetos JSON. Basta definir um objeto de classe e inseri-lo diretamente no banco de dados. Não há necessidade de uma camada do mapeador relacional de objetos (ORM).
- As transações do MongoDB usam isolamento de snapshot, o que significa que somente o cliente envolvido na sessão transacional vê quaisquer alterações até o momento em que a transação seja confirmada.
- O driver .NET do MongoDB facilita o uso de transações e o uso da sintaxe baseada em LINQ para queries.
Informações adicionais sobre como usar C# e o driver .NET podem ser encontradas na documentação C# e driver .NET do MongoDB.