在C#中处理数据库:PostgreSQL和MongoDB入门指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

C#数据库操作简介

\n\n

在现代应用开发中,数据库操作是一项关键技能。C# (.NET) 提供了强大的工具来与关系型数据库(PostgreSQL)和文档型数据库(MongoDB)进行交互。本文将介绍这两种数据库的连接基础和CRUD操作。

\n\n

本文面向熟悉C#基础的初学者开发者。我们将探讨通过SQL查询(Npgsql)的传统方法,以及现代ORM——Entity Framework Core,还有通过官方驱动操作MongoDB的方法。

\n\n

1. 在C#中使用PostgreSQL

\n\n

PostgreSQL 是一款强大的开源关系型数据库管理系统。在.NET中,可以使用 Npgsql 包或带有 Npgsql.EntityFrameworkCore.PostgreSQL 提供程序的 Entity Framework Core 来操作它。

\n\n

1.1 通过Npgsql连接(底层访问)

\n\n

通过NuGet安装包:

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

简单连接和执行查询的示例:

\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 使用Entity Framework Core与PostgreSQL

\n\n

安装包:

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

创建模型和上下文:

\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

通过EF Core进行CRUD操作:

\n\n
using var db = new AppDbContext();\n\n// Create\ndb.Users.Add(new User { Name = "安娜", 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. 在C#中使用MongoDB

\n\n

MongoDB 是一种NoSQL数据库,以BSON文档格式存储数据。在C#中,使用官方驱动 MongoDB.Driver。

\n\n

2.1 安装和配置连接

\n\n

安装包:

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

连接到本地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 MongoDB的CRUD操作

\n\n

创建模型类:

\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

集合操作示例:

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

博客

书籍推荐