Heim > Datenbank > MySQL-Tutorial > Wie kann EF Core eine selbstreferenzierende Kategorietabelle für den hierarchischen Datenabruf effizient zuordnen?

Wie kann EF Core eine selbstreferenzierende Kategorietabelle für den hierarchischen Datenabruf effizient zuordnen?

Linda Hamilton
Freigeben: 2025-01-03 01:32:39
Original
637 Leute haben es durchsucht

How Can EF Core Efficiently Map a Self-Referencing Category Table for Hierarchical Data Retrieval?

Zuordnung der selbstreferenzierenden Kategorietabellenstruktur zu EF Core

Das Problem ergibt sich aus der Komplexität des Abrufens einer hierarchischen Struktur wie der Kategorie Tabelle mit ihrer ParentId-Spalte, innerhalb der Einschränkungen von EF Core und LINQ. Um dieses Problem zu beheben, wurde eine rekursive Funktion eingesetzt, um die Kategorien manuell zu durchlaufen und die ChildCategories-Eigenschaft zu füllen.

Es ist jedoch eine effizientere Lösung entstanden, die alle Funktionen von EF Core nutzt:

Using ein einzelnes Include

Im Gegensatz zu früheren Versuchen, einen Teil des Baums mit Include() zu laden, umfasst dieser Ansatz ein einzelnes Include() für die ChildCategories-Eigenschaft. In Kombination mit der Materialisierung der Abfrage in einen LINQ to Objects-Kontext ermöglicht dies, dass die Navigationseigenschaftskorrektur von EF Core die Zuordnung verarbeiten kann.

Optimierter Abruf mit Filterung

Zu Um nur die Stammknoten des Kategoriebaums abzurufen, wie von der GetAll()-Methode des Repositorys gefordert, wird nach der Abfrage ein Filter angewendet materialisiert:

return Table
       .AsEnumerable()
       .Where(x => x.ParentId == null)
       .ToList();
Nach dem Login kopieren

Durch die Materialisierung der Abfrage in einen LINQ to Objects-Kontext mithilfe von AsEnumerable() werden die Navigationseigenschaften festgelegt, bevor die Filterung angewendet wird. Dies führt zu einer einzigen SQL-Abfrage, die effektiv die gewünschte hierarchische Struktur abruft, ohne dass rekursive Funktionen erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann EF Core eine selbstreferenzierende Kategorietabelle für den hierarchischen Datenabruf effizient zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage