Compartilhar via


O método Load

Há vários cenários em que talvez você queira carregar entidades do banco de dados no contexto sem fazer nada imediatamente com essas entidades. Um bom exemplo disso é carregar entidades para associação de dados, conforme descrito em de Dados Locais. Uma maneira comum de fazer isso é escrever uma consulta LINQ e, em seguida, chamar ToList nela, apenas para descartar imediatamente a lista criada. O método de extensão Load funciona exatamente como ToList, exceto por evitar a criação da lista completamente.

As técnicas mostradas neste tópico se aplicam igualmente a modelos criados com o Code First e com o EF Designer.

Aqui estão dois exemplos de como usar o Load. O primeiro é obtido de um aplicativo de associação de dados do Windows Forms em que o Load é usado para consultar entidades antes de associar à coleção local, conforme descrito em Dados Locais:

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

    _context = new ProductContext();

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

O segundo exemplo mostra como usar Load para carregar uma coleção filtrada de entidades relacionadas, conforme descrito em Carregando entidades relacionadas:

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