Share via


Metodo Load

Esistono diversi scenari in cui è possibile caricare le entità dal database nel contesto senza eseguire immediatamente alcuna operazione con tali entità. Un buon esempio è il caricamento di entità per il data binding, come descritto in Dati locali. Un modo comune per eseguire questa operazione consiste nel scrivere una query LINQ e quindi chiamare ToList solo per eliminare immediatamente l'elenco creato. Il metodo di estensione Load funziona esattamente come ToList, ad eccezione del fatto che evita completamente la creazione dell'elenco.

Le tecniche illustrate in questo argomento si applicano in modo analogo ai modelli creati con Code First ed EF Designer.

Di seguito sono riportati due esempi di uso di Load. Il primo viene ricavato da un'applicazione di data binding Windows Form in cui viene usato Load per eseguire query per le entità prima dell'associazione alla raccolta locale, come descritto in Dati locali:

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

    _context = new ProductContext();

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

Il secondo esempio mostra l'uso di Load per caricare una raccolta filtrata di entità correlate, come descritto in Caricamento di entità correlate:

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