در این مجموعه مقالات آموزشی، به‌صورت گام‌به‌گام با قدرتمندترین ORM دات‌نت یعنی Entity Framework Core (EF Core) آشنا می‌شوید. هدف این دوره آن است که از مفاهیم مقدماتی تا تکنیک‌های پیشرفته را پوشش دهد تا شما بتوانید در پروژه‌های واقعی یک لایه داده حرفه‌ای و مقیاس‌پذیر طراحی کنید.

در این دوره علاوه بر آشنایی با مفاهیم پایه مانند ORM و تفاوت EF6 و EF Core، مباحثی مثل Code First و Database First، مدیریت Migrationها، کار با LINQ، مدیریت رابطه‌ها، بارگذاری داده‌ها (Lazy/Eager/Explicit Loading)، تکنیک‌های پیشرفته (Soft Delete، Shadow Properties، Global Query Filters، Audit Log)، همچنین Concurrency و بهینه‌سازی Performance را به‌صورت عملی یاد خواهید گرفت.

فهرست موضوعات

    مقدمه و آشنایی با Entity Framework Core

مقدمه و آشنایی با Entity Framework Core

Entity Framework Core نسخه بازنویسی‌شده و مدرن EF است که به‌صورت متن‌باز و کراس‌پلتفرم عرضه شده و امکانات پیشرفته‌ای نسبت به EF6 ارائه می‌دهد. در این مقاله با تاریخچه EF، تفاوت‌های کلیدی EF6 و EF Core، و مفهوم ORM (Object-Relational Mapping) آشنا می‌شوید؛ رویکردی که با تبدیل جداول و داده‌های پایگاه داده به اشیاء شی‌گرا، توسعه نرم‌افزار را ساده‌تر، سریع‌تر و قابل نگهداری‌تر می‌کند.

1404/06/12
Code First و Database First در EF Core

Code First و Database First در EF Core

در این مقاله با دو رویکرد اصلی در EF Core آشنا شدیم: Code First که از کلاس‌های C# برای ایجاد دیتابیس استفاده می‌کند و مناسب پروژه‌های جدید است، و Database First که از دیتابیس موجود مدل‌ها را تولید می‌کند. همچنین مفهوم Migration معرفی شد که امکان مدیریت تغییرات دیتابیس بر اساس تغییرات مدل‌ها را فراهم می‌کند و روند توسعه و نگهداری نرم‌افزار را ساده‌تر می‌سازد.

1404/06/12
LINQ نوشتن کوئری‌ها را خوانا و یکپارچه می‌کند، اما در پروژه‌های واقعی صرفاً استفاده از

LINQ نوشتن کوئری‌ها را خوانا و یکپارچه می‌کند، اما در پروژه‌های واقعی صرفاً استفاده از

در این مقاله به مباحث پیشرفته LINQ پرداخته می‌شود؛ از جمله نحوه نوشتن فیلترهای کارا با استفاده از متدهای شرطی و ترکیب آن‌ها، تکنیک‌های Projection برای کاهش مصرف حافظه و افزایش سرعت Queryها، و به‌کارگیری Select، Anonymous Types، DTO و Grouping برای سناریوهای واقعی. همچنین نکاتی در مورد بهینه‌سازی کوئری‌ها در EF Core، جلوگیری از بارگذاری داده‌های غیرضروری و پیاده‌سازی Projectionهای چندسطحی جهت کاهش هزینه پایگاه داده مطرح می‌گردد. هدف مقاله آن است که نشان دهد چگونه می‌توان با استفاده صحیح از LINQ، کوئری‌هایی نوشت که هم قابل نگهداری و خوانا باشند و هم در عمل، کارایی بالایی داشته باشند.

1404/06/12
رابطه‌ها در EF Core: پیاده‌سازی یک‌به‌یک، یک‌به‌چند و چندبه‌چند

رابطه‌ها در EF Core: پیاده‌سازی یک‌به‌یک، یک‌به‌چند و چندبه‌چند

در این مقاله با انواع رابطه‌ها در EF Core آشنا شدیم: یک‌به‌یک برای ارتباط رکورد به رکورد مانند User و Profile، یک‌به‌چند برای سناریوهایی مثل Category و Product، و چندبه‌چند برای ارتباط‌های متقابل مانند Student و Course. این رابطه‌ها را می‌توان با Data Annotations یا Fluent API پیاده‌سازی کرد و EF Core از نسخه ۵ به بعد مدیریت رابطه چندبه‌چند را ساده‌تر کرده است.

1404/06/12
پیاده‌سازی رابطه‌های یک‌به‌یک، یک‌به‌چند و چندبه‌چند در EF Core

پیاده‌سازی رابطه‌های یک‌به‌یک، یک‌به‌چند و چندبه‌چند در EF Core

این مقاله به‌صورت کاربردی پیاده‌سازی رابطه‌های ۱:۱، ۱\:N و N\:N را در EF Core پوشش می‌دهد: از تعریف نقش‌های Principal/Dependent و الزامی/اختیاری‌بودن FK تا تنظیم رفتار حذف (Cascade/Restrict/NoAction) و سناریوی Shared PK/Alternate Key برای ۱:۱. برای ۱\:N، الگوی HasMany/WithOne و نکات Include/Projection توضیح داده شده و برای N\:N هم دو رویکرد Skip Navigations (بدون موجودیت میانی) و Join Entity با فیلدهای اضافه مثل Grade/RegisteredAt ارائه می‌شود. سپس نمونه‌های کامل Fluent API، Queryهای متداول، Seeding و فرمان‌های Migration آورده شده و روش تست قیود relational با SQLite In-Memory معرفی می‌شود. در پایان، خطاهای رایج (ابهام ناوبری‌ها، multiple cascade paths، تغییر کلید) و راه‌حل‌های عملی و یک Cheat Sheet جمع‌بندی ارائه شده است.

1404/06/20