Entity framework core 导航属性始终为空
默认情况下,导航属性始终为空ef core(v3.1.0) 但是,当我加载导航属性并提前加载时,它会起作用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
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();
}
}