CodeShot
Dapper1 دقیقه مطالعه

Dapper چیست؟

یک Micro-ORM سبک برای دات‌نت که فقط نگاشت نتیجه SQL دستی به آبجکت C# را انجام می‌دهد — بدون Change Tracking یا Migration.

چرا مهم است؟

وقتی کارایی خام و کنترل کامل روی SQL مهم‌تر از راحتی EF Core است (گزارش‌های سنگین، Queryهای بهینه‌شده دستی)، Dapper با حداقل Overhead دقیقاً همین را می‌دهد.

تعریف

Dapper یک Micro-ORM است: خودتان SQL خام می‌نویسید، Dapper فقط نتیجه (DataReader) را به آبجکت‌های C# نگاشت می‌کند — بدون Change Tracking، بدون تولید خودکار SQL، بدون Migration.

مثال

using var connection = new SqlConnection(connectionString);

var products = await connection.QueryAsync<Product>(
    "SELECT Id, Name, Price FROM Products WHERE Price > @MinPrice",
    new { MinPrice = 500000 });

Dapper در برابر EF Core

Dapper EF Core
سرعت خام بالاتر (Overhead کمتر) متوسط
سرعت توسعه کندتر (SQL دستی) سریع‌تر (LINQ)
Migration ندارد دارد
کنترل روی SQL کامل محدودتر

خیلی از پروژه‌های واقعی هر دو را کنار هم استفاده می‌کنند: EF Core برای CRUD روزمره، Dapper برای Queryهای گزارش‌گیری سنگین.

اشتباه رایج

❌ ساختن رشته SQL با الحاق مستقیم مقدار ورودی کاربر ("... WHERE Id = " + id) به‌جای پارامتر آنانیم (new { Id = id }) — دروازه مستقیم SQL Injection؛ همیشه از پارامتر Dapper استفاده کنید.

منبع و مطالعه بیشتر

خلاصه

Dapper یک Micro-ORM است که فقط نتیجه SQL دستی را به آبجکت نگاشت می‌کند، بدون Change Tracking یا Migration. همیشه از پارامتر آنانیم استفاده کنید، نه الحاق رشته، تا در برابر SQL Injection ایمن بمانید. مرجع کامل: learndapper.com.

این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←