sto avendo due classi - autore e blogpost:Caricamento di riferimenti a EF7
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 Blogpost
{
public Blogpost()
{
}
// Properties
public int Id { get; set; }
public string Text { get; set; }
public int AuthorId { get; set; }
public Author Author { get; set; }
}
Utilizzando EF7 (beta4), io li sto collegando seguente modo:
public partial class MyDbContext : DbContext
{
public virtual DbSet<Author> Author { get; set; }
public virtual DbSet<Blogpost> Blogpost { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Author>(entity =>
{
entity.Property(e => e.Id)
.ForSqlServer().UseIdentity();
});
modelBuilder.Entity<Blogpost>(entity =>
{
entity.Property(e => e.Id)
.ForSqlServer().UseIdentity();
});
modelBuilder.Entity<Blogpost>(entity =>
{
entity.Reference<Author>(d => d.Author).InverseCollection(p => p.Blogposts).ForeignKey(d => d.AuthorId);
});
}
}
Quando accedo un blogpost Db.Blogpost.First(x => x.Id == id)
ho recuperare l'oggetto blogpost - tuttavia, il .Author
proprietà è nulla. Inoltre, quando si recupera qualsiasi oggetto Autore, è la raccolta .Blogposts
vuota.
Comprendo che l'EF7 non ha ancora implementato il caricamento con carico né il caricamento lento. Ma come potrei quindi recuperare/assegnare qualsiasi oggetto referenziato tramite chiave esterna?
Nota per chiunque non è in grado di trovare la "include" il metodo: è necessario aggiungere 'using Microsoft.Data.Entity;' nella parte superiore del file. – gunr2171
Lo spazio dei nomi è ora cambiato. È necessario aggiungere 'using Microsoft.EntityFrameworkCore' per Entity Framework Core 1.1.0. – Matt