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



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

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

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

查看可空关系的问题,因为不允许null的关系可以正常工作。

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

你可以显式地关闭延迟加载,如下所示:

db.Configuration.LazyLoadingEnabled = false;
db.Configuration.ProxyCreationEnabled = false;            
然后,

EF将不会惰性加载任何其他实体。您应该检查您是否无意中延迟加载了其他链接实体。

最新更新