C# (.NET) के लिए ORM: Entity Framework, Dapper और LINQ to SQL की तुलना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) के लिए ORM: तुलना और उदाहरण



.NET प्लेटफ़ॉर्म पर आधुनिक विकास में, डेटाबेस के साथ काम करना शायद ही कभी Object-Relational Mapping (ORM) के उपयोग के बिना होता है। ORM लाइब्रेरीज़ डेवलपर्स को ऑब्जेक्ट-ओरिएंटेड कोड के माध्यम से रिलेशनल डेटाबेस के साथ बातचीत करने की अनुमति देती हैं, जिससे जटिल SQL क्वेरीज़ को मैन्युअल रूप से लिखने की आवश्यकता समाप्त हो जाती है। इस लेख में, हम C# के लिए तीन सबसे लोकप्रिय ORM: Entity Framework Core, Dapper और LINQ to SQL की तुलना करेंगे, साथ ही व्यावहारिक उपयोग के उदाहरण भी देंगे।



1. Entity Framework Core (EF Core)



EF Core Microsoft का एक आधुनिक, क्रॉस-प्लेटफ़ॉर्म ORM है, जो Entity Framework 6 का विकास है। यह विभिन्न DBMS (SQL Server, PostgreSQL, SQLite, MySQL और अन्य) के साथ काम करने का समर्थन करता है और डेटा के साथ काम करने के लिए शक्तिशाली क्षमताएँ प्रदान करता है।



मुख्य विशेषताएँ:

  • Code First / Database First — कोड के आधार पर डेटाबेस बनाया जा सकता है या इसके विपरीत।
  • LINQ क्वेरीज़ — क्वेरीज़ C# में लिखी जाती हैं, और EF Core उन्हें SQL में बदल देता है।
  • माइग्रेशन — डेटाबेस स्कीमा का स्वचालित प्रबंधन।
  • लेज़ी लोडिंग (Lazy Loading) — संबंधित डेटा का स्वचालित लोडिंग।


कोड उदाहरण (Code First):



using Microsoft.EntityFrameworkCore;using System.Collections.Generic;

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 optionsBuilder) { optionsBuilder.UseSqlServer("Server=.;Database=MyDb;Trusted_Connection=True;"); }}

// उपयोगusing (var db = new AppDbContext()){ // उपयोगकर्ता जोड़ना var user = new User { Name = "इवान", Email = "ivan@example.com" }; db.Users.Add(user); db.SaveChanges();

// LINQ के माध्यम से क्वेरी var users = db.Users.Where(u => u.Name.Contains("इवान")).ToList();}


लाभ: उच्च प्रदर्शन, समृद्ध कार्यक्षमता, माइग्रेशन समर्थन, सक्रिय समुदाय। हानियाँ: अधिक मेमोरी खपत, जटिल क्वेरीज़ सेट करने में कठिनाई।



2. Dapper



Dapper एक हल्का micro-ORM है, जिसे Stack Overflow टीम द्वारा बनाया गया है। यह पूर्ण मैपिंग प्रदान नहीं करता है, लेकिन सीधे SQL क्वेरीज़ निष्पादित करने की अनुमति देता है, परिणामों को स्वचालित रूप से C# ऑब्जेक्ट्स में मैप करता है।



मुख्य विशेषताएँ:

  • अधिकतम प्रदर्शन — Dapper को .NET के लिए सबसे तेज़ ORM में से एक माना जाता है।
  • प्रत्यक्ष SQL — आप शुद्ध SQL में क्वेरीज़ लिखते हैं।
  • न्यूनतमता — कोई माइग्रेशन, संदर्भ या जटिल कॉन्फ़िगरेशन नहीं।


कोड उदाहरण:



using Dapper;using System.Data.SqlClient;using System.Linq;

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

// उपयोगstring connectionString = "Server=.;Database=MyDb;Trusted_Connection=True;";using (var connection = new SqlConnection(connectionString)){ // SQL क्वेरी निष्पादित करना var users = connection.Query<User>("SELECT * FROM Users WHERE Name = @Name", new { Name = "इवान" }).ToList();

// संग्रहीत प्रक्रिया निष्पादित करना var result = connection.Query<User>("GetUsers", commandType: System.Data.CommandType.StoredProcedure);}


लाभ: उच्च गति, सरलता, न्यूनतम संसाधन खपत। हानियाँ: माइग्रेशन की कमी, SQL मैन्युअल रूप से लिखना पड़ता है, संबंधित संस्थाओं का स्वचालित लोडिंग नहीं।



3. LINQ to SQL



अनुशंसाएँ