folgende Daten Modell Angenommen:EF Lazy-Loading: Artikel in Navigationseigenschaft ohne das Laden es
class Garden
{
int ID;
ICollection<Tree> Trees;
string Address;
}
class Tree
{
public int ID;
public float Size;
}
Lassen Sie uns Pflanze einige Bäume:
var gardens = dbContext.Gardens.Take(10).ToList();
foreach (var g in gardens)
g.Trees.Add(new Tree());
Aber jetzt, jede Bezugnahme auf g.Trees
löst ein Datenbankabfrage wegen Lazy-Loading. Ich könnte .Include(garden => garden.Trees)
tun, wenn ich die Gärten hole, aber dann übertrage ich alle vorhandenen Bäume.
Ich könnte eine GardenID-Spalte in Tree erstellen, und fügen Sie dann einfach die Struktur zu meinem DbContext, ohne die Navigationseigenschaft zu berühren. Aber jetzt muss ich meinen DbContext weitergeben.
Wie kann ich den Baum zum Garten hinzufügen, ohne eine Lazy-Load der Navigationseigenschaft auszulösen und ohne unnötige Daten zu übertragen?
Entweder make 'Trees' Eigenschaft nicht virtuell, oder' dbContext' Lazy loading ausschalten. –
Haben Sie in der Kategorie "Baum" eine Navigation zum Garten? – Eldho