Arbeit mit Datenbanken in C#: PostgreSQL und MongoDB

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten
Here is the translated HTML blog article in German:

Einleitung: Warum ein C#-Entwickler PostgreSQL und MongoDB kennen sollte

Moderne C#-(.NET-)Entwicklung kommt selten ohne die Arbeit mit Datenbanken aus. Die Wahl zwischen einem relationalen (SQL) und einem dokumentenorientierten (NoSQL) DBMS hängt von der Projektarchitektur ab. PostgreSQL ist eine leistungsstarke relationale Datenbank mit JSON-Unterstützung, während MongoDB eine flexible Dokumentendatenbank für schnelles Prototyping und Big Data ist. In diesem Artikel behandeln wir die Verbindung und grundlegende Operationen mit beiden Systemen aus C#.



1. Arbeiten mit PostgreSQL in C#

Zur Interaktion mit PostgreSQL in .NET wird der Anbieter Npgsql verwendet. Er unterstützt Entity Framework Core und die direkte Ausführung von SQL-Abfragen.



1.1. Installation und Verbindung

Installieren Sie das NuGet-Paket:

dotnet add package Npgsql


Beispiel für eine Verbindungszeichenfolge:

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


1.2. CRUD-Operationen mit Npgsql

Erstellen wir eine Tabelle Users und führen grundlegende Operationen aus:

using Npgsql;

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

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

// Inserting datavar 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();

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


1.3. Verwenden von Entity Framework Core

Installieren Sie das Paket:

dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL


Definieren Sie das Modell und den Kontext:

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 mit EF Core:

using var db = new AppDbContext();

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

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

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

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


2. Arbeiten mit MongoDB in C#

MongoDB speichert Daten im BSON-Format (binäres JSON). Für C# wird der Treiber MongoDB.Driver verwendet.



2.1. Installation und Verbindung

Installieren Sie das NuGet-Paket:

dotnet add package MongoDB.Driver


Verbinden mit einem lokalen Server:

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


2.2. CRUD-Operationen

Arbeiten mit Dokumenten über BsonDocument:

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

Blogs

Buchempfehlungen