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

ORM چیست؟

لایه‌ای که جدول‌های دیتابیس رابطه‌ای را به کلاس‌ها و آبجکت‌های زبان برنامه‌نویسی نگاشت می‌کند تا کار با داده بدون نوشتن SQL خام انجام شود.

چرا مهم است؟

بدون ORM هر عملیات داده باید با SQL دستی و Mapping دستی نتیجه به آبجکت نوشته شود؛ ORM این کار تکراری را خودکار می‌کند و سرعت توسعه را بالا می‌برد.

تعریف

ORM (Object-Relational Mapping) جدول‌های دیتابیس را به کلاس‌ها و ردیف‌ها را به Instance آن کلاس‌ها نگاشت می‌کند؛ کوئری‌ها هم به زبان برنامه‌نویسی نوشته می‌شوند نه SQL خام.

دو رویکرد رایج در دات‌نت

  • EF Core: ORM کامل با Change Tracking، Migration خودکار و LINQ؛ برای اکثر برنامه‌ها.
  • Dapper: Micro-ORM سبک؛ خودتان SQL می‌نویسید، Dapper فقط نتیجه را به آبجکت Map می‌کند — کنترل و سرعت بیشتر، کد بیشتر.

مثال (EF Core)

var activeUsers = await context.Users
    .Where(u => u.IsActive)
    .OrderBy(u => u.Name)
    .ToListAsync();

مزیت و هزینه

✔ کد کمتر، Type-Safety، مستقل از نوع دیتابیس (تا حدی). ❌ روی کوئری‌های پیچیده و حجم بالا Overhead دارد؛ باید SQL تولیدشده را با Profiler چک کرد.

اشتباه رایج

❌ اعتماد کورکورانه به ORM برای هر کوئری، حتی گزارش‌های سنگین تحلیلی — این‌جا SQL خام یا Dapper معمولاً کاراتر است.

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

خلاصه

ORM جدول را به کلاس و ردیف را به آبجکت نگاشت می‌کند تا نیاز به SQL دستی کم شود. EF Core کامل و خودکار است، Dapper سبک و صریح؛ انتخاب بر اساس نیاز به کنترل در برابر سرعت توسعه است. مرجع کامل: Microsoft Learn و learndapper.com.

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