【发布时间】:2020-08-24 19:19:25
【问题描述】:
我有这样的查询
return await _ctx.Activities
.Include(a => a.Attributes)
.Include(a => a.Roles)
.Include(a => a.Bookmarks)
.Include(a => a.VideoMetas)
.ThenInclude(vm => vm.Instances)
.Include(a => a.ImageMetas)
.ThenInclude(im => im.Instances)
.Include(a => a.Procedure)
.ThenInclude(p => p.Attributes)
.FirstOrDefaultAsync(a => a.Id == id);
结果非常缓慢。在EF 6 你可以做.Include(v => v.VideoMetas.Select(vm => vm.Instances) 这有点快(我猜,没有看过SQL Profiler 和实际查询tbh)。我该如何优化呢?我也可以使用EF Plus,它有.IncludeOptimized(),但没有.ThenInclude() 的版本。我听说我可以使用.Select 而不是.Include(),但我真的不确定如何在这个查询中处理它。
【问题讨论】:
-
也许有帮助的答案quention
标签: c# sql-server entity-framework-core