Entity Framework - الـ Include وThenInclude لتحميل البيانات المرتبطة
Entity Framework Core - استخدام Include وThenInclude لتحميل البيانات المرتبطة
عند التعامل مع علاقات بين الجداول، نحتاج أحيانًا إلى تحميل بيانات الكيانات المرتبطة (Related Entities). باستخدام Include وThenInclude في EF Core، يمكننا تحميل هذه البيانات بكفاءة دون الحاجة لاستعلامات إضافية.
---🔹 متى نستخدم Include وThenInclude؟
- Include: لتحميل كيان مرتبط مباشرة (مثل جلب القسم الخاص بكل طالب).
- ThenInclude: لتحميل كيان مرتبط بكيان آخر مرتبط (علاقات متداخلة).
🔹 مثال عملي على استخدام Include:
// جلب الطلاب مع معلومات القسم المرتبط
var students = await dbContext.Students
.Include(s => s.Department)
.ToListAsync();
---
🔹 مثال عملي على استخدام ThenInclude:
// جلب الطلبات مع تفاصيل العميل وعنوان العميل
var orders = await dbContext.Orders
.Include(o => o.Customer)
.ThenInclude(c => c.Address)
.ToListAsync();
---
🔹 شرح الكود:
- Include: استخدمناه لتحميل بيانات الكيان المرتبط مباشرة (Department أو Customer).
- ThenInclude: استخدمناه لتحميل بيانات الكيان المرتبط داخل كيان آخر (Address داخل Customer).
🔹 ملاحظة إضافية:
- ✅ يمكنك تكرار Include وThenInclude أكثر من مرة لتحميل شجرة كاملة من البيانات المرتبطة.
- ✅ كل Include ينفذ في نفس الاستعلام الأساسي (Single Query) مما يحسن الأداء مقارنة بالتحميل الكسول (Lazy Loading).
✅ استخدام Include وThenInclude مهم جدًا عندما تحتاج إلى عرض بيانات مترابطة في واجهة المستخدم بدون تنفيذ استعلامات إضافية كثيرة.
تعليقات
إرسال تعليق