Entity framework core 导航属性始终为空

Entity framework core 导航属性始终为空,entity-framework-core,Entity Framework Core,默认情况下,导航属性始终为空ef core(v3.1.0) 但是,当我加载导航属性并提前加载时,它会起作用 var companies = context.Companies.Include(e=>e.Employees); // this works var e1 = companies.First().Employees; var companies = context.Companies; // this do

默认情况下,导航属性始终为空ef core(v3.1.0)

但是,当我加载导航属性并提前加载时,它会起作用

            var companies = context.Companies.Include(e=>e.Employees); // this works
            var e1 = companies.First().Employees;

            var companies = context.Companies; // this does n't work
            var e1 = companies.First().Employees; // error
我错过什么了吗?下面是重现该问题的示例代码

谢谢, 天哪,我找到了解决办法

添加nuget软件包Microsoft.EntityFrameworkCore.Proxies

在DataContext类上启用以下(UseLazyLoadingProxies


不,你没有遗漏任何东西。应该像在第一个代码段中一样手动加载相关属性。这是为了保持数据库操作简单高效,其思想是只加载该操作中真正需要的内容。 更多信息:

当然,您可以像上面的回答那样使用延迟加载,但通常不建议这样做

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
    {
        optionsBuilder.UseSqlServer("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=Orders")
            .UseLazyLoadingProxies();
    }
}