Compartir vía


El método de carga

Hay varios escenarios en los que es posible que desee cargar entidades de la base de datos en el contexto sin hacer nada inmediatamente con esas entidades. Un buen ejemplo de esto es cargar entidades para el enlace de datos como se describe en Datos locales. Una manera habitual de hacerlo es escribir una consulta LINQ y, a continuación, llamar a ToList en ella, solo para descartar inmediatamente la lista creada. El método de extensión Load funciona igual que ToList, salvo que evita la creación de la lista por completo.

Las técnicas que se muestran en este tema se aplican igualmente a los modelos creados con Code First y EF Designer.

Estos son dos ejemplos de uso de Load. La primera se toma de una aplicación de enlace de datos de Windows Forms donde se usa Load para consultar entidades antes de enlazar a la colección local, como se describe en Datos locales:

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

    _context = new ProductContext();

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

En el segundo ejemplo se muestra el uso de Load para cargar una colección filtrada de entidades relacionadas, como se describe en Carga de 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();
}