Die Load-Methode

Es gibt mehrere Szenarien, in denen Sie Entitäten aus der Datenbank in den Kontext laden möchten, ohne sofort etwas mit diesen Entitäten auszuführen. Ein gutes Beispiel hierfür ist das Laden von Entitäten für die Datenbindung, wie in lokalen Daten beschrieben. Eine gängige Möglichkeit hierfür ist das Schreiben einer LINQ-Abfrage und anschließendes Aufrufen von ToList, nur um die erstellte Liste sofort zu verwerfen. Die Load-Erweiterungsmethode funktioniert wie ToList, mit der Ausnahme, dass die Erstellung der Liste insgesamt vermieden wird.

Die in diesem Thema gezeigten Techniken gelten gleichermaßen für Modelle, die mit Code First und EF Designer erstellt wurden.

Hier sind zwei Beispiele für die Verwendung von Load. Der erste wird aus einer Windows Forms-Datenbindungsanwendung entnommen, in der Load verwendet wird, um Entitäten abzufragen, bevor sie an die lokale Auflistung gebunden werden, wie in lokalen Daten beschrieben:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    _context = new ProductContext();

    _context.Categories.Load();
    categoryBindingSource.DataSource = _context.Categories.Local.ToBindingList();
}

Das zweite Beispiel zeigt die Verwendung von Load zum Laden einer gefilterten Auflistung verwandter Entitäten, wie im Laden verwandter Entitäten beschrieben:

using (var context = new BloggingContext())
{
    var blog = context.Blogs.Find(1);

    // Load the posts with the 'entity-framework' tag related to a given blog
    context.Entry(blog)
        .Collection(b => b.Posts)
        .Query()
        .Where(p => p.Tags.Contains("entity-framework"))
        .Load();
}