Trabajo con bases de datos en C#: PostgreSQL y MongoDB para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción al trabajo con bases de datos en C#

\n\n

En el desarrollo moderno de aplicaciones, trabajar con bases de datos es una de las habilidades clave. C# (.NET) proporciona potentes herramientas para interactuar tanto con bases de datos relacionales (PostgreSQL) como con bases de datos orientadas a documentos (MongoDB). En este artículo, analizaremos los conceptos básicos de conexión y ejecución de operaciones CRUD para ambos sistemas.

\n\n

El artículo está dirigido a desarrolladores principiantes familiarizados con los fundamentos de C#. Abordaremos tanto el enfoque tradicional mediante consultas SQL (Npgsql) como el ORM moderno — Entity Framework Core, así como el trabajo con MongoDB a través del controlador oficial.

\n\n

1. Trabajo con PostgreSQL en C#

\n\n

PostgreSQL es un potente sistema de gestión de bases de datos relacional de código abierto. Para trabajar con él en .NET se utiliza el paquete Npgsql o Entity Framework Core con el proveedor Npgsql.EntityFrameworkCore.PostgreSQL.

\n\n

1.1 Conexión a través de Npgsql (acceso de bajo nivel)

\n\n

Instale el paquete a través de NuGet:

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

Ejemplo de conexión simple y ejecución 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 de Entity Framework Core con PostgreSQL

\n\n

Instale los paquetes:

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

Cree el modelo y el 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

Operaciones CRUD a través de 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. Trabajo con MongoDB en C#

\n\n

MongoDB es una base de datos NoSQL que almacena datos en formato de documentos BSON. Para C# se utiliza el controlador oficial MongoDB.Driver.

\n\n

2.1 Instalación y configuración de la conexión

\n\n

Instale el paquete:

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

Conexión al servidor local de MongoDB:

\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 Operaciones CRUD con MongoDB

\n\n

Cree la clase del 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

Ejemplo de trabajo con la colección:

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

Blogs

Book Recommendations