Arbeit mit Datenbanken in C#: PostgreSQL und MongoDB für Anfänger

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

Einführung in die Arbeit mit Datenbanken in C#

\n\n

In der modernen Anwendungsentwicklung ist die Arbeit mit Datenbanken eine der Schlüsselkompetenzen. C# (.NET) bietet leistungsstarke Werkzeuge für die Interaktion sowohl mit relationalen (PostgreSQL) als auch mit dokumentenorientierten (MongoDB) Datenbanken. In diesem Artikel behandeln wir die Grundlagen der Verbindung und der Durchführung von CRUD-Operationen für beide Systeme.

\n\n

Der Artikel richtet sich an Anfänger-Entwickler, die mit den Grundlagen von C# vertraut sind. Wir betrachten sowohl den traditionellen Ansatz über SQL-Abfragen (Npgsql) als auch das moderne ORM – Entity Framework Core, sowie die Arbeit mit MongoDB über den offiziellen Treiber.

\n\n

1. Arbeit mit PostgreSQL in C#

\n\n

PostgreSQL ist ein leistungsstarkes relationales Open-Source-DBMS. Für die Arbeit damit in .NET wird das Paket Npgsql oder Entity Framework Core mit dem Anbieter Npgsql.EntityFrameworkCore.PostgreSQL verwendet.

\n\n

1.1 Verbindung über Npgsql (Low-Level-Zugriff)

\n\n

Installieren Sie das Paket über NuGet:

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

Beispiel für eine einfache Verbindung und Abfrageausführung:

\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 Verwendung von Entity Framework Core mit PostgreSQL

\n\n

Installieren Sie die Pakete:

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

Erstellen Sie ein Modell und einen Kontext:

\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

CRUD-Operationen über EF Core:

\n\n
using var db = new AppDbContext();\n\n// Create\ndb.Users.Add(new User { Name = "Anna", 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. Arbeit mit MongoDB in C#

\n\n

MongoDB ist eine NoSQL-Datenbank, die Daten im BSON-Dokumentenformat speichert. Für C# wird der offizielle Treiber MongoDB.Driver verwendet.

\n\n

2.1 Installation und Einrichtung der Verbindung

\n\n

Installieren Sie das Paket:

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

Verbindung zum lokalen MongoDB-Server:

\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 CRUD-Operationen mit MongoDB

\n\n

Erstellen Sie eine Modellklasse:

\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

Beispiel für die Arbeit mit einer Collection:

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

Blogs

Buchempfehlungen