C# में डेटाबेस के साथ कार्य: PostgreSQL और MongoDB व्यावहारिक रूप से
\n\nडेटाबेस के साथ कार्य करना किसी भी backend-डेवलपर के प्रमुख कार्यों में से एक है। C# (.NET) इकोसिस्टम में, डेवलपर के पास सैकड़ों ड्राइवर और ORM उपलब्ध हैं, लेकिन सबसे अधिक मांग वाले रिलेशनल DBMS (PostgreSQL) और डॉक्यूमेंट-ओरिएंटेड NoSQL समाधान (MongoDB) बने हुए हैं। इस लेख में, हम व्यावहारिक उदाहरणों के साथ समझेंगे कि दोनों डेटाबेस से कैसे कनेक्ट करें, CRUD-संचालन करें और किसी विशिष्ट कार्य के लिए उपयुक्त टूल का चयन करें।
\n\n1. C# में PostgreSQL: Npgsql के माध्यम से कनेक्शन और CRUD
\n\n.NET में PostgreSQL के साथ कार्य करने के लिए लाइब्रेरी Npgsql का उपयोग किया जाता है — यह एक उच्च-प्रदर्शन ADO.NET प्रदाता है। इसे NuGet के माध्यम से स्थापित करें:
dotnet add package Npgsql\n\n1.1. डेटाबेस से कनेक्शन
\n\nस्थानीय PostgreSQL सर्वर के लिए कनेक्शन स्ट्रिंग इस प्रकार दिखती है:
\n\nstring connectionString = "Host=localhost;Port=5432;Database=testdb;Username=postgres;Password=your_password";\n\nDB के साथ कार्य करने के लिए एक सहायक क्लास बनाएं:
\n\nusing Npgsql;\n\npublic class PostgresService\n{\n private readonly string _connectionString;\n\n public PostgresService(string connectionString)\n {\n _connectionString = connectionString;\n }\n\n public async Task InsertUserAsync(string name, int age)\n {\n await using var conn = new NpgsqlConnection(_connectionString);\n await conn.OpenAsync();\n\n var cmd = new NpgsqlCommand(\n "INSERT INTO users (name, age) VALUES (@name, @age)", conn);\n cmd.Parameters.AddWithValue("name", name);\n cmd.Parameters.AddWithValue("age", age);\n\n await cmd.ExecuteNonQueryAsync();\n }\n\n public async Task<List<User>> GetAllUsersAsync()\n {\n var users = new List<User>();\n\n await using var conn = new NpgsqlConnection(_connectionString);\n await conn.OpenAsync();\n\n var cmd = new NpgsqlCommand("SELECT id, name, age FROM users", conn);\n await using var reader = await cmd.ExecuteReaderAsync();\n\n while (await reader.ReadAsync())\n {\n users.Add(new User\n {\n Id = reader.GetInt32(0),\n Name = reader.GetString(1),\n Age = reader.GetInt32(2)\n });\n }\n\n return users;\n }\n}\n\npublic class User\n{\n public int Id { get; set; }\n public string Name { get; set; }\n public int Age { get; set; }\n}\n\n1.2. PostgreSQL के साथ Entity Framework Core का उपयोग
\n\nरिलेशनल डेटा के साथ अधिक सुविधाजनक कार्य के लिए, ORM Entity Framework Core का उपयोग Npgsql.EntityFrameworkCore.PostgreSQL प्रदाता के साथ करें:
dotnet add package Microsoft.EntityFrameworkCore\ndotnet add package Npgsql.EntityFrameworkCore.PostgreSQL\n\nमॉडल और कॉन्टेक्स्ट का उदाहरण:
\n\npublic 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=testdb;Username=postgres;Password=your_password");\n }\n}\n\nअब CRUD-संचालन सरल हो जाते हैं:
\n\nusing (var db = new AppDbContext())\n{\n // Create\n db.Users.Add(new User { Name = "Alice", Age = 30 });\n db.SaveChanges();\n\n // Read\n var users = db.Users.ToList();\n\n // Update\n var user = db.Users.First();\n user.Age = 31;\n db.SaveChanges();\n\n // Delete\n db.Users.Remove(user);\n db.SaveChanges();\n}\n\n2. C# में MongoDB: आधिकारिक ड्राइवर के माध्यम से डॉक्यूमेंट के साथ कार्य
\n\nMongoDB एक डॉक्यूमेंट-आधारित NoSQL डेटाबेस है,