Travail avec les bases de données en C# : PostgreSQL et MongoDB en pratique

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travail avec les bases de données en C# : PostgreSQL et MongoDB en pratique



Le travail avec les bases de données est l'une des tâches clés de tout développeur backend. Dans l'écosystème C# (.NET), des centaines de pilotes et d'ORM sont disponibles pour le développeur, mais les plus demandés restent les SGBD relationnels (PostgreSQL) et les solutions NoSQL orientées documents (MongoDB). Dans cet article, nous allons voir, à l'aide d'exemples pratiques, comment se connecter aux deux bases, effectuer des opérations CRUD et choisir l'outil adapté à une tâche spécifique.



1. PostgreSQL en C# : connexion et CRUD via Npgsql



Pour travailler avec PostgreSQL dans .NET, on utilise la bibliothèque Npgsql — un fournisseur ADO.NET haute performance. Installons-la via NuGet :



dotnet add package Npgsql


1.1. Connexion à la base de données



La chaîne de connexion pour un serveur PostgreSQL local ressemble à ceci :



string connectionString = "Host=localhost;Port=5432;Database=testdb;Username=postgres;Password=your_password";


Créons une classe d'assistance pour travailler avec la BD :



using Npgsql;

public class PostgresService{ private readonly string _connectionString;

public PostgresService(string connectionString) { _connectionString = connectionString; }

public async Task InsertUserAsync(string name, int age) { await using var conn = new NpgsqlConnection(_connectionString); await conn.OpenAsync();

var cmd = new NpgsqlCommand( "INSERT INTO users (name, age) VALUES (@name, @age)", conn); cmd.Parameters.AddWithValue("name", name); cmd.Parameters.AddWithValue("age", age);

await cmd.ExecuteNonQueryAsync(); }

public async Task<List<User>> GetAllUsersAsync() { var users = new List<User>();

await using var conn = new NpgsqlConnection(_connectionString); await conn.OpenAsync();

var cmd = new NpgsqlCommand("SELECT id, name, age FROM users", conn); await using var reader = await cmd.ExecuteReaderAsync();

while (await reader.ReadAsync()) { users.Add(new User { Id = reader.GetInt32(0), Name = reader.GetString(1), Age = reader.GetInt32(2) }); }

return users; }}

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


1.2. Utilisation d'Entity Framework Core avec PostgreSQL



Pour un travail plus pratique avec les données relationnelles, utilisez l'ORM Entity Framework Core avec le fournisseur Npgsql.EntityFrameworkCore.PostgreSQL :



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


Exemple de modèle et de contexte :



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 optionsBuilder) { optionsBuilder.UseNpgsql("Host=localhost;Database=testdb;Username=postgres;Password=your_password"); }}


Maintenant, les opérations CRUD deviennent triviales :



using (var db = new AppDbContext()){    // Create    db.Users.Add(new User { Name = "Alice", Age = 30 });    db.SaveChanges();

// Read var users = db.Users.ToList();

// Update var user = db.Users.First(); user.Age = 31; db.SaveChanges();

// Delete db.Users.Remove(user); db.SaveChanges();}


2. MongoDB en C# : travail avec les documents via le pilote officiel



MongoDB est une base NoSQL orientée documents,

Blogs

Book Recommendations