Heim >Backend-Entwicklung >C++ >Wie kann ich filtern, die Navigationseigenschaften in den Entitätsrahmenkern eingeschlossen haben?
Herausforderung: Filtern einer primären Abfrage, die auf einer Eigenschaft innerhalb einer verschachtelten Navigationseigenschaft basiert, wenn Include
im Entity Framework Core schwierig sein kann. Dieser Leitfaden bietet eine Lösung.
Lösung: Hebeling gefiltert inklusive
Entity Framework Core 5 Einführung Filtered incluter , ein leistungsstarkes Merkmal, das Filterung der eingeschlossenen Navigationseigenschaften aktiviert. Unterstützte Operatoren umfassen Where
, OrderBy
/OrderByDescending
, Skip
und Take
.
Implementiert gefiltert inklusive:
veranschaulichen wir mit einem Beispiel:
<code class="language-csharp">var blogs = context.Blogs .Include(blog => blog.Posts.Where(post => post.Author == "me")) .ThenInclude(post => post.Author) .ToList();</code>
Diese Abfrage ruft Blogs und ihre zugehörigen Beiträge ab, enthält jedoch nur Beiträge, in denen der Name des Autors "ich" ist. Beachten Sie die Where
-Klausel innerhalb der Include
-Methode.
Schlüsselüberlegungen:
Include
werden als unabhängige Prädikate behandelt. Beziehungsversorgung und filtriert gehören:
Achten Sie auf die Beziehungsfindung. Es kann zusätzliche Einträge in die Sammlung der Navigationsinmobilie verleihen, was möglicherweise zu unerwarteten Ergebnissen führt.
gefiltert inklusive vs. direkte Abfragefilterung:
Filtered Include
wirkt sich nur auf die enthaltenen Navigationseigenschaften aus, nicht die Hauptabfrage. Verwenden Sie die Where
-Methode direkt auf der DbSet
oder IQueryable
gefiltert inklusive und Projektionen:
Include
Projektionen ignorieren im Allgemeinen Include
Aussagen, sogar gefilterte. Wenn jedoch die
Das obige ist der detaillierte Inhalt vonWie kann ich filtern, die Navigationseigenschaften in den Entitätsrahmenkern eingeschlossen haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!