Verschachtelte Felder in Entity Framework Core: Kann ich alles in einer Abfrage abrufen?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Verschachtelte Felder in Entity Framework Core: Kann ich alles in einer Abfrage abrufen?

Post by Guest »

Ich versuche, komplexe Datensätze mit mehreren Ebenen verschachtelter Felder in C# / ASP.NET Core / Entity Framework Core effizient zu bearbeiten.
Ich habe eine kleine Test-App mit EF-Modellen erstellt „Abteilungen > Kurse > Kursauditoren“.
Hier ist meine Anfrage:

Code: Select all

    public void OnGet()
{
Departments = ctx.Departments.ToList();
foreach (var department in Departments)
{
department.Courses = ctx.Courses
.Where(c => c.DepartmentID == department.ID)
.ToList();
foreach (var course in department.Courses)
{
course.CourseAuditors = ctx.CourseAuditors
.Where(c => c.CourseID == course.ID)
.ToList();
}
}
}
Gibt es eine Möglichkeit, die Schleifen loszuwerden und alles in einer Abfrage zu lesen?
Hier sind die Modelle:
Department.cs

Code: Select all

public class Department
{
public int ID { get; set; }
public string Name { get; set; }
public string DepartmentHead { get; set; }

public virtual ICollection Courses { get; set; }
}
Course.cs

Code: Select all

public class Course
{
public int ID { get; set; }
public string Name { get; set; }
public string Instructor { get; set; }
public string Location { get; set; }
public int DepartmentID { get; set; }
public virtual ICollection CourseAuditors { get; set; }
}
CourseAuditor.cs

Code: Select all

public class CourseAuditor
{
public int ID { get; set; }
public string StudentName { get; set; }
public int CourseID { get; set; }
}
Unsere aktuelle Plattform ist
  • TargetFramework=.net5.0;
  • EntityFrameworkCore=5.0.6 (wir möchten bald auf .NET 6.x migrieren).
Mein Hauptanliegen ist die Effizienz auf SQL-Ebene ( Je weniger Abfragen/Roundtrips auf SQL-Ebene, desto besser!).

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post