[英]Entity Framework 6 loading child objects after other database call
我正在进行一个简单的数据库调用以从表中加载值。 惰性加载已禁用,并且按预期方式工作,这意味着它不会填充相关表。
例如
IEnumerable<FAR> fars = await ctx.FARs.ToListAsync();
将从该表返回列表。 在此清单中,与“项目”表有关系。 运行此查询后,“ fars [n] .Projects”为空,这是正确的。
现在,我想获取“项目”的列表,并且仅与顶级“项目”相关联,并且都不是子级。
List<Project> projects = ctx.Projects.ToList();
我一抓到“项目”的清单,就会立即填充“ fars [n] .Projects”。
没有分配,它们是2个独立的数据库调用。 我查看了数据库中运行的查询。 没有其他通话。
为什么突然将这些“项目”添加到我的原始实体变量中?
解决方案是在查询中包括AsNoTracking()
。
正确的代码是
IEnumerable<FAR> fars = await ctx.FARs.ToListAsync();
希望这可以帮助其他人解决他们的性能问题:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.