دليل Dapper الكامل لـ C# (.NET): أمثلة وأساليب

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

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

ابدأ الدورة

مقدمة عن Dapper: ما هو ولماذا تحتاجه

Dapper هي مكتبة خفيفة الوزن (Micro ORM) لمنصة .NET، طورها فريق Stack Overflow. وهي عبارة عن امتداد لواجهة IDbConnection مصممة لتنفيذ استعلامات SQL على قواعد البيانات بأقل تكلفة إضافية. على عكس ORMs الثقيلة (مثل Entity Framework Core)، لا يتتبع Dapper تغييرات الكائنات، ولا يُنشئ استعلامات SQL معقدة، ولا يتطلب إعداد سياق بيانات. هدفه الرئيسي هو أقصى أداء وبساطة.

المزايا الرئيسية لـ Dapper:

  • السرعة: يعمل Dapper بسرعة تقارب سرعة أوامر ADO.NET الخام، حيث يستخدم التوليد الديناميكي لرمز IL لتعيين النتائج.
  • البساطة: أقل كود ممكن لتنفيذ الاستعلامات. لا حاجة لإنشاء تكوينات معقدة.
  • التحكم في SQL: أنت تكتب استعلامات SQL يدويًا، مما يمنحك تحكمًا كاملاً في البيانات وكيفية استرجاعها.
  • المرونة: يعمل مع أي مزود ADO.NET (SQL Server، PostgreSQL، MySQL، SQLite وغيرها).
  • قابلية التوسع: يندمج بسهولة مع المشاريع الحالية و ORMs الأخرى.

يعتبر Dapper مثاليًا للمشاريع التي تتطلب أداءً عاليًا وتحكمًا مباشرًا في SQL، وكذلك للخدمات المصغرة والتطبيقات عالية التحميل.

تثبيت Dapper

يتم توزيع Dapper عبر NuGet، مدير الحزم لـ .NET. يمكن تثبيته بعدة طرق:

عبر وحدة تحكم مدير الحزم (Visual Studio):

Install-Package Dapper

عبر .NET CLI (الطريقة الموصى بها):

dotnet add package Dapper

عبر واجهة NuGet في Visual Studio:

  1. انقر بزر الماوس الأيمن على المشروع ← "إدارة حزم NuGet".
  2. انتقل إلى علامة التبويب "استعراض".
  3. ابحث عن "Dapper" وانقر على "تثبيت".

بعد التثبيت، سيظهر مرجع للتجميعة Dapper.dll في المشروع. لا توجد تبعيات إضافية مطلوبة — تعمل المكتبة فوق System.Data القياسي.

بداية سريعة مع مثال كود

لنلقِ نظرة على مثال بسيط للعمل مع Dapper. لنفترض أن لدينا جدول Users في قاعدة بيانات SQL Server:

CREATE TABLE Users (
    Id INT PRIMARY KEY IDENTITY,
    Name NVARCHAR(100) NOT NULL,
    Age INT NOT NULL
);

كود C# لجلب جميع المستخدمين:

using System.Data.SqlClient;
using Dapper;

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

class Program
{
    static void Main()
    {
        string connectionString = "Server=localhost;Database=TestDB;Trusted_Connection=True;";
        using (var connection = new SqlConnection(connectionString))
        {
            connection.Open();
            
            // استعلام SELECT بسيط
            var users = connection.Query<User>("SELECT * FROM Users");
            
            foreach (var user in users)
            {
                Console.WriteLine($"{user.Id}: {user.Name}, العمر {user.Age}");
            }
        }
    }
}

كما ترى، يقوم Dapper تلقائيًا بتعيين نتائج استعلام SQL إلى كائنات C#. الطريقة Query<T> هي الطريقة الأساسية لتنفيذ استعلامات SELECT.

الأساليب/الدوال الأساسية في Dapper

يوفر Dapper مجموعة من طرق الامتداد لواجهة IDbConnection. دعنا نستعرض 10 طرق رئيسية.

1. Query<T>

الوظيفة: تنفيذ استعلام SQL وإرجاع مجموعة من الكائنات من النوع المحدد T. يُستخدم لاستعلامات SELECT التي تُرجع عدة صفوف.

المعلمات:

  • sql (string) — استعلام SQL.
  • pa

توصيات