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

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

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

ابدأ الدورة

مقدمة في العمل مع قواعد البيانات في C#

\n\n

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

\n\n

المقالة موجهة للمطورين المبتدئين الذين لديهم معرفة بأساسيات C#. سنتناول كلاً من النهج التقليدي عبر استعلامات SQL (Npgsql) و ORM الحديث Entity Framework Core، بالإضافة إلى العمل مع MongoDB عبر السائق الرسمي.

\n\n

1. العمل مع PostgreSQL في C#

\n\n

PostgreSQL هو نظام إدارة قواعد بيانات علائقية قوي ومفتوح المصدر. للعمل معه في .NET، يُستخدم حزمة Npgsql أو Entity Framework Core مع موفر Npgsql.EntityFrameworkCore.PostgreSQL.

\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

عمليات CRUD عبر EF Core:

\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. العمل مع MongoDB في C#

\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 عمليات CRUD مع MongoDB

\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                

المدونات

توصيات الكتب