使用Include和AsNoTracking时查询中的N + 1选择

时间:2016-08-25 12:01:41

标签: c# entity-framework entity-framework-6

我有下一个关系(只是示例)用户0/1 - *故事 当想要获取包含用户的故事列表时,我会进行下一个查询。

context.Stories.Include(s => s.User).AsNoTracking().ToList()

我注意到ef向db提出了额外的请求以获取用户(但这不应该是因为我使用include)。 没有AsNoTracking(),一切正常。

看起来这个问题与可以为空的关系,因为不允许null的关系可以正常工作。

有没有人有类似的问题? 在"允许null"的情况下,可能是预期的行为。关系。

1 个答案:

答案 0 :(得分:0)

您可以明确关闭延迟加载,如下所示:

db.Configuration.LazyLoadingEnabled = false;
db.Configuration.ProxyCreationEnabled = false;            
然后,EF将不会懒惰地加载任何其他实体。你应该检查一下你是否有意无意中加载其他一些链接的实体。