Méthode Load

Plusieurs scénarios permettent de charger des entités de la base de données dans le contexte sans pour autant effectuer des actions immédiates avec celles-ci. Un exemple typique est le chargement d’entités pour la liaison de données, tel que décrit dans Données locales. Une méthode courante consiste à écrire une requête LINQ, puis à appeler ToList, pour ensuite rejeter immédiatement la liste créée. La méthode d’extension Load fonctionne de la même manière que ToList, à la différence près qu’elle évite complètement la création de la liste.

Les techniques présentées dans cette rubrique s’appliquent également aux modèles créés avec Code First et EF Designer.

Deux exemples d’utilisation de Load sont présentés ci-dessous. La première est tirée d’une application de liaison de données Windows Forms dans laquelle Load est utilisé pour rechercher des entités avant de les lier à la collection locale, tel que décrit dans Données locales :

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

    _context = new ProductContext();

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

Le second exemple montre l’utilisation de Load pour charger une collection filtrée d’entités apparentées, tel que décrit dans Chargement d’entités associées :

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();
}