繁体   English   中英

实体框架6在其他数据库调用之后加载子对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM