Trabalho com bancos de dados em C#: PostgreSQL e MongoDB para iniciantes

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 ao trabalho com bancos de dados em C#

\n\n

No desenvolvimento moderno de aplicações, trabalhar com bancos de dados é uma das habilidades essenciais. O C# (.NET) oferece ferramentas poderosas para interagir tanto com bancos de dados relacionais (PostgreSQL) quanto com bancos orientados a documentos (MongoDB). Neste artigo, abordaremos os fundamentos da conexão e execução de operações CRUD para ambos os sistemas.

\n\n

O artigo é destinado a desenvolvedores iniciantes familiarizados com os fundamentos do C#. Veremos tanto a abordagem tradicional com consultas SQL (Npgsql) quanto o ORM moderno — Entity Framework Core, além do trabalho com MongoDB através do driver oficial.

\n\n

1. Trabalho com PostgreSQL em C#

\n\n

PostgreSQL é um poderoso SGBD relacional de código aberto. Para trabalhar com ele no .NET, utiliza-se o pacote Npgsql ou o Entity Framework Core com o provedor Npgsql.EntityFrameworkCore.PostgreSQL.

\n\n

1.1 Conexão via Npgsql (acesso de baixo nível)

\n\n

Instale o pacote via NuGet:

\n\n
dotnet add package Npgsql
\n\n

Exemplo de conexão simples e execução de consulta:

\n\n
using Npgsql;\n\nstring connectionString = "Host=localhost;Port=5432;Database=mydb;Username=user;Password=pass";\n\nusing var conn = new NpgsqlConnection(connectionString);\nconn.Open();\n\nstring sql = "SELECT id, name, age FROM users WHERE age > @minAge";\nusing var cmd = new NpgsqlCommand(sql, conn);\ncmd.Parameters.AddWithValue("minAge", 18);\n\nusing var reader = cmd.ExecuteReader();\nwhile (reader.Read())\n{\n    Console.WriteLine($"ID: {reader["id"]}, Name: {reader["name"]}, Age: {reader["age"]}");\n}
\n\n

1.2 Uso do Entity Framework Core com PostgreSQL

\n\n

Instale os pacotes:

\n\n
dotnet add package Microsoft.EntityFrameworkCore\ndotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
\n\n

Crie o modelo e o contexto:

\n\n
public class User\n{\n    public int Id { get; set; }\n    public string Name { get; set; }\n    public int Age { get; set; }\n}\n\npublic class AppDbContext : DbContext\n{\n    public DbSet<User> Users { get; set; }\n\n    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\n    {\n        optionsBuilder.UseNpgsql("Host=localhost;Database=mydb;Username=user;Password=pass");\n    }\n}
\n\n

Operações CRUD via EF Core:

\n\n
using var db = new AppDbContext();\n\n// Create\ndb.Users.Add(new User { Name = "Ana", Age = 25 });\ndb.SaveChanges();\n\n// Read\nvar users = db.Users.Where(u => u.Age > 20).ToList();\n\n// Update\nvar user = db.Users.First();\nuser.Age = 30;\ndb.SaveChanges();\n\n// Delete\ndb.Users.Remove(user);\ndb.SaveChanges();
\n\n

2. Trabalho com MongoDB em C#

\n\n

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

\n\n

2.1 Instalação e configuração da conexão

\n\n

Instale o pacote:

\n\n
dotnet add package MongoDB.Driver
\n\n

Conexão ao servidor MongoDB local:

\n\n
using MongoDB.Driver;\n\nvar client = new MongoClient("mongodb://localhost:27017");\nvar database = client.GetDatabase("mydb");\nvar collection = database.GetCollection<BsonDocument>("users");
\n\n

2.2 Operações CRUD com MongoDB

\n\n

Crie a classe modelo:

\n\n
public class User\n{\n    public MongoDB.Bson.ObjectId Id { get; set; }\n    public string Name { get; set; }\n    public int Age { get; set; }\n}
\n\n

Exemplo de trabalho com a coleção:

\n\n
var collection = database.GetCollection<User>("users");\n\n// Create\nvar newUser = new User { Name = "João", Age = 30 };\ncollection.InsertOne(newUser);\n\n// Read\nvar filter = Builders<User>.Filter.Eq(u => u.Name, "João");\nvar user = collection.Find(filter).FirstOrDefault();\n\n// Update\nvar update = Builders&l                

Blogs

Book Recommendations