Asp.net core mvc EF7中引用的加载

Asp.net core mvc EF7中引用的加载,asp.net-core-mvc,entity-framework-core,Asp.net Core Mvc,Entity Framework Core,我有两门课——author和blogpost: public class Author { public Author() { Blogposts = new HashSet<Blogpost>(); } public int Id { get; set; } public string Name { get; set; } public virtual ICollection<Blogpost> Blog

我有两门课——author和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; }
}
使用EF7(beta4),我通过以下方式连接它们:

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);
            });
    }
}
公共部分类MyDbContext:DbContext { 公共虚拟数据库集作者{get;set;} 公共虚拟数据库集Blogpost{get;set;} 模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder) { modelBuilder.Entity(Entity=> { entity.Property(e=>e.Id) .ForSqlServer().UseIdentity(); }); modelBuilder.Entity(Entity=> { entity.Property(e=>e.Id) .ForSqlServer().UseIdentity(); }); modelBuilder.Entity(Entity=> { entity.Reference(d=>d.Author).InverseCollection(p=>p.Blogposts).ForeignKey(d=>d.authord); }); } } 当我访问blogpost
Db.blogpost.First(x=>x.Id==Id)
时,我检索blogpost对象-但是,
.Author
属性为空。此外,检索任何作者对象时,它都是
。Blogposts
集合为空


我知道EF7既没有实现急切加载,也没有实现惰性加载。但是我如何检索/分配通过外键引用的任何对象呢?

EF7已经实现了即时加载

使用。包括

var post=context.Blogpost.First();//post.Author将为空
var post=context.Blogpost.Include(b=>b.Author.First();//将加载post.Author

有关使用集合的详细信息,请参阅此问题的答案:

对于无法找到“包含”方法的用户,请注意:您需要使用Microsoft.Data.Entity添加
位于文件顶部。命名空间现在已更改。您需要使用Microsoft.EntityFrameworkCore为Entity Framework Core 1.1.0添加
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);
            });
    }
}