我很惊讶地看到以下代码并未真正包含TheLinkedThing
:
await db.Set<TheThing>()
.Include(e => e.TheLinkedThing)
.SingleOrDefaultAsync(e => e.Id == someId);
我可以看到在SQL事件探查器中,没有生成join
运算符。但是,以下查询按预期工作:
await db.Set<TheThing>()
.Where(e => e.Id == someId)
.Include(e => e.TheLinkedThing)
.SingleOrDefaultAsync();
为什么会这样?我在文档中找不到任何可以解释为预期行为的内容。我使用最新的6.1.3版本,延迟加载被禁用。