العمل مع قواعد البيانات في C#: PostgreSQL و MongoDB على .NET

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع قواعد البيانات في C#: PostgreSQL و MongoDB — دليل شامل لمطور .NET



نادرًا ما يخلو التطوير الحديث بلغة C# (.NET) من التفاعل مع قواعد البيانات. سواء كنت تقوم بإنشاء تطبيق ويب، أو خدمة مصغرة، أو أداة سطح مكتب، فإن القدرة على الاتصال وإدارة البيانات هي مهارة أساسية. في هذه المقالة، سنشرح العمل مع نظامين شائعين لإدارة قواعد البيانات: PostgreSQL العلائقية و MongoDB الموجهة للمستندات. ستتعلم كيفية إعداد الاتصال، وتنفيذ عمليات CRUD، وتجنب الأخطاء الشائعة.



1. الاتصال بـ PostgreSQL من C# (.NET) باستخدام Npgsql



PostgreSQL هو نظام إدارة قواعد بيانات علائقية قوي ومفتوح المصدر. للعمل معه في .NET، يُستخدم الموفر Npgsql. قم بتثبيته عبر NuGet:



dotnet add package Npgsql


بعد التثبيت، يتم إنشاء اتصال عبر سلسلة الاتصال. مثال:



using Npgsql;

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

using var conn = new NpgsqlConnection(connectionString);conn.Open();

Console.WriteLine("تم إنشاء الاتصال بـ PostgreSQL!");


تنفيذ استعلامات SQL: CREATE, INSERT, SELECT



لتنفيذ الأوامر، استخدم NpgsqlCommand. لننظر في إنشاء جدول وإدراج بيانات:



using var cmd = new NpgsqlCommand();cmd.Connection = conn;

// إنشاء جدولcmd.CommandText = @" CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(200) UNIQUE )";cmd.ExecuteNonQuery();

// إدراج بيانات مع معاملاتcmd.CommandText = "INSERT INTO users (name, email) VALUES (@name, @email)";cmd.Parameters.AddWithValue("name", "إيفان بيتروف");cmd.Parameters.AddWithValue("email", "ivan@example.com");cmd.ExecuteNonQuery();

// قراءة البياناتcmd.CommandText = "SELECT id, name, email FROM users";using var reader = cmd.ExecuteReader();while (reader.Read()){ Console.WriteLine($"{reader["id"]}: {reader["name"]} - {reader["email"]}");}


هام: استخدم دائمًا الاستعلامات ذات المعاملات للحماية من حقن SQL.



2. العمل مع PostgreSQL عبر Entity Framework Core



للعمل على مستوى أعلى، يُوصى باستخدام Entity Framework Core (EF Core) مع موفر Npgsql. قم بتثبيت الحزم:



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


أنشئ السياق والنموذج:



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

public class AppDbContext : DbContext{ public DbSet<User> Users { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseNpgsql("Host=localhost;Database=mydb;Username=user;Password=pass");}

// الاستخدامusing var db = new AppDbContext();db.Database.EnsureCreated();

var user = new User { Name = "آنا سميرنوفا", Email = "anna@example.com" };db.Users.Add(user);db.SaveChanges();

var users = db.Users.ToList();


يقوم EF Core تلقائيًا بإنشاء SQL، وإدارة الترحيلات، وتبسيط صيانة الكود.



3. الاتصال بـ MongoDB من C# (.NET) باستخدام MongoDB.Driver



MongoDB هي قاعدة بيانات NoSQL تخزن البيانات بتنسيق مستندات BSON. بالنسبة لـ C#، استخدم السائق الرسمي MongoDB.Driver:



dotnet add package MongoDB.Driver


الاتصال بالخادم المحلي:



using MongoDB.Driver;using MongoDB.Bson;

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

المدونات

توصيات الكتب