Caricamento di riferimenti in EF7

asp.net-core-mvc entity-framework-core

Domanda

Sto avendo due classi: autore e blogpost:

public class Author
{
    public Author()
    {
        Blogposts = new HashSet<Blogpost>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Blogpost> Blogposts { get; set; }
}

e

public class Author
{
    public Author()
    {
        Blogposts = new HashSet<Blogpost>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Blogpost> Blogposts { get; set; }
}

Utilizzando EF7 (beta4), li sto collegando nel seguente modo:

public class Author
{
    public Author()
    {
        Blogposts = new HashSet<Blogpost>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Blogpost> Blogposts { get; set; }
}

Quando Db.Blogpost.First(x => x.Id == id) un Db.Blogpost.First(x => x.Id == id) richiamo l'oggetto Blogpost - tuttavia, la proprietà .Author è null. Inoltre, quando si recupera qualsiasi oggetto Autore, la collezione .Blogposts è vuota.

Comprendo che l'EF7 non ha ancora implementato il carico di caricamento e nemmeno il caricamento lento. Ma come potrei quindi recuperare / assegnare qualsiasi oggetto referenziato tramite chiave esterna?

Risposta accettata

EF 7 ha implementato il caricamento impaziente.

Usa .Include

var post = context.Blogpost.First(); // post.Author will be null

var post = context.Blogpost.Include(b => b.Author).First(); // post.Author will be loaded

Per ulteriori informazioni su come lavorare con le raccolte, vedere la risposta a questa domanda: Come lavorare con le raccolte




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché