Trabalho com bancos de dados em C#: PostgreSQL e MongoDB no .NET

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

Trabalho com bancos de dados em C#: PostgreSQL e MongoDB — guia completo para desenvolvedores .NET



O desenvolvimento moderno em C# (.NET) raramente ocorre sem interação com bancos de dados. Independentemente de você estar criando uma aplicação web, um microsserviço ou uma ferramenta desktop, a habilidade de conectar e gerenciar dados é uma competência essencial. Neste artigo, abordaremos o trabalho com dois sistemas populares de gerenciamento de bancos de dados: o relacional PostgreSQL e o orientado a documentos MongoDB. Você aprenderá como configurar a conexão, executar operações CRUD e evitar erros comuns.



1. Conexão com PostgreSQL a partir de C# (.NET) usando Npgsql



PostgreSQL é um poderoso SGBD relacional de código aberto. Para trabalhar com ele em .NET, utiliza-se o provedor Npgsql. Instale-o via NuGet:



dotnet add package Npgsql


Após a instalação, cria-se uma conexão através de uma string de conexão. Exemplo:



using Npgsql;

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

using var conn = new NpgsqlConnection(connectionString);conn.Open();

Console.WriteLine("Conexão com PostgreSQL estabelecida!");


Execução de consultas SQL: CREATE, INSERT, SELECT



Para executar comandos, use NpgsqlCommand. Vejamos a criação de uma tabela e a inserção de dados:



using var cmd = new NpgsqlCommand();cmd.Connection = conn;

// Criação da tabelacmd.CommandText = @" CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(200) UNIQUE )";cmd.ExecuteNonQuery();

// Inserção de dados com parâmetroscmd.CommandText = "INSERT INTO users (name, email) VALUES (@name, @email)";cmd.Parameters.AddWithValue("name", "Ivan Petrov");cmd.Parameters.AddWithValue("email", "ivan@example.com");cmd.ExecuteNonQuery();

// Leitura de dadoscmd.CommandText = "SELECT id, name, email FROM users";using var reader = cmd.ExecuteReader();while (reader.Read()){ Console.WriteLine($"{reader["id"]}: {reader["name"]} - {reader["email"]}");}


Importante: sempre use consultas parametrizadas para proteção contra injeção de SQL.



2. Trabalho com PostgreSQL via Entity Framework Core



Para um trabalho de nível mais alto, recomenda-se o Entity Framework Core (EF Core) com o provedor Npgsql. Instale os pacotes:



dotnet add package Microsoft.EntityFrameworkCoredotnet add package Npgsql.EntityFrameworkCore.PostgreSQL


Crie o contexto e o modelo:



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

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

protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseNpgsql("Host=localhost;Database=mydb;Username=user;Password=pass");}

// Usousing var db = new AppDbContext();db.Database.EnsureCreated();

var user = new User { Name = "Anna Smirnova", Email = "anna@example.com" };db.Users.Add(user);db.SaveChanges();

var users = db.Users.ToList();


O EF Core gera automaticamente o SQL, gerencia migrações e simplifica a manutenção do código.



3. Conexão com MongoDB a partir de C# (.NET) usando MongoDB.Driver



MongoDB é um banco de dados NoSQL que armazena dados no formato de documentos BSON. Para C#, use o driver oficial MongoDB.Driver:



dotnet add package MongoDB.Driver


Conexão com o servidor local:



using MongoDB.Driver;using MongoDB.Bson;

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

Blogs

Book Recommendations