Freigeben über


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 Lokale 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, außer dass die Erstellung der Liste insgesamt vermieden wird.

Die in diesem Thema dargestellten Techniken gelten jeweils für Modelle, die mit Code First und dem EF-Designer erstellt wurden.

Hier sind zwei Beispiele für die Verwendung von Load. Das erste ist einer Windows Forms-Datenbindungsanwendung entnommen, in der Load verwendet wird, um Entitäten abzufragen, bevor sie an die lokale Sammlung gebunden werden, wie in Lokale 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 Sammlung verwandter Entitäten, wie in 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();
}