Entity Framework - التعامل مع الـ Navigation Properties

Entity Framework Core - التعامل مع الـ Navigation Properties

Navigation Properties هي خصائص (Properties) تُستخدم في الكلاسات لتعريف العلاقات بين الكيانات (Entities)، وتسمح لك بالوصول إلى الكائنات المرتبطة بسهولة.

---

🔹 أنواع الـ Navigation Properties:

  • Reference Navigation: خاصية واحدة تربط سجل واحد (مثل: Student ➔ Department).
  • Collection Navigation: مجموعة تربط عدة سجلات (مثل: Department ➔ Students).
---

🔹 مثال عملي: استخدام الـ Navigation Properties:

1️⃣ كلاس Department مع طلابه:


// ملف Models/Department.cs

public class Department
{
    public int Id { get; set; }
    public string Name { get; set; }

    // Collection Navigation Property
    public ICollection<Student> Students { get; set; }
}
---

2️⃣ كلاس Student مع قسمه:


// ملف Models/Student.cs

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int DepartmentId { get; set; }

    // Reference Navigation Property
    public Department Department { get; set; }
}
---

🔹 كيفية استخدام Navigation Properties أثناء القراءة:


// جلب الطلاب مع بيانات القسم المرتبط باستخدام Include

var students = await dbContext.Students
    .Include(s => s.Department)
    .ToListAsync();

foreach (var student in students)
{
    Console.WriteLine($"{student.Name} - {student.Department.Name}");
}
---

🔹 شرح الكود:

  • استخدمنا الدالة Include لجلب بيانات القسم المرتبط مع كل طالب.
  • بفضل خاصية Department داخل Student، استطعنا الوصول إلى اسم القسم مباشرة بدون استعلام إضافي.
---

🔹 ملاحظات مهمة:

  • ✅ عند الحاجة لجلب بيانات مرتبطة (Related Data)، استخدام Include يحسن الأداء ويوفر استعلام موحد.
  • ✅ يمكنك التداخل في الجلب باستخدام ThenInclude في حالة العلاقات المتسلسلة.

✅ Navigation Properties تجعل التعامل مع العلاقات داخل EF Core سهلًا وطبيعيًا جدًا وكأنك تتعامل مع كائنات C# عادية.

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework