Trabalho com Bancos de Dados em C#: PostgreSQL e MongoDB

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que um Desenvolvedor C# Deve Conhecer PostgreSQL e MongoDB

O desenvolvimento moderno em C# (.NET) raramente ocorre sem trabalhar com bancos de dados. A escolha entre um SGBD relacional (SQL) e orientado a documentos (NoSQL) depende da arquitetura do projeto. PostgreSQL é um banco de dados relacional poderoso com suporte a JSON, enquanto MongoDB é um banco de dados de documentos flexível para prototipagem rápida e Big Data. Neste artigo, abordaremos a conexão e operações básicas com ambos os sistemas a partir do C#.



1. Trabalhando com PostgreSQL em C#

Para interagir com PostgreSQL no .NET, utiliza-se o provedor Npgsql. Ele suporta Entity Framework Core e execução direta de consultas SQL.



1.1. Instalação e Conexão

Instale o pacote NuGet:

dotnet add package Npgsql


Exemplo de string de conexão:

Host=localhost;Port=5432;Database=mydb;Username=user;Password=pass


1.2. Operações CRUD via Npgsql

Vamos criar uma tabela Users e realizar operações básicas:

using Npgsql;

var connString = "Host=localhost;Database=testdb;Username=postgres;Password=123";await using var conn = new NpgsqlConnection(connString);await conn.OpenAsync();

// Criando uma tabelavar createCmd = new NpgsqlCommand(@" CREATE TABLE IF NOT EXISTS Users ( Id SERIAL PRIMARY KEY, Name VARCHAR(100), Age INT )", conn);await createCmd.ExecuteNonQueryAsync();

// Inserindo dadosvar insertCmd = new NpgsqlCommand( "INSERT INTO Users (Name, Age) VALUES (@n, @a)", conn);insertCmd.Parameters.AddWithValue("n", "Alexey");insertCmd.Parameters.AddWithValue("a", 30);await insertCmd.ExecuteNonQueryAsync();

// Lendo dadosvar readCmd = new NpgsqlCommand("SELECT * FROM Users", conn);var reader = await readCmd.ExecuteReaderAsync();while (await reader.ReadAsync()){ Console.WriteLine($"{reader["Id"]}: {reader["Name"]}, {reader["Age"]} anos");}


1.3. Usando Entity Framework Core

Instale o pacote:

dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL


Defina o modelo e o contexto:

public class User{    public int Id { get; set; }    public string Name { get; set; }    public int Age { get; set; }}

public class AppDbContext : DbContext{ public DbSet<User> Users { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseNpgsql("Host=localhost;Database=testdb;Username=postgres;Password=123");}


CRUD via EF Core:

using var db = new AppDbContext();

// Adicionandodb.Users.Add(new User { Name = "Maria", Age = 25 });await db.SaveChangesAsync();

// Lendovar users = await db.Users.ToListAsync();foreach (var u in users) Console.WriteLine($"{u.Name} - {u.Age}");

// Atualizandovar user = await db.Users.FirstAsync(u => u.Name == "Maria");user.Age = 26;await db.SaveChangesAsync();

// Deletandodb.Users.Remove(user);await db.SaveChangesAsync();


2. Trabalhando com MongoDB em C#

MongoDB armazena dados no formato BSON (JSON binário). O driver MongoDB.Driver é usado para C#.



2.1. Instalação e Conexão

Instale o pacote NuGet:

dotnet add package MongoDB.Driver


Conectando a um servidor local:

var client = new MongoClient("mongodb://localhost:27017");var database = client.GetDatabase("testdb");var collection = database.GetCollection<BsonDocument>("users");


2.2. Operações CRUD

Trabalhando com documentos via BsonDocument:

// Criando um documentovar doc = new BsonDocument{    { "name", "Ivan" },    { "age", 28 },    { "skills", new BsonArray { "C#", "MongoDB", "Docker" } }};await collection.Insert                

Blogs

Book Recommendations