У меня проблемы с большим запросом EF Core, в котором много цепочек .Include()
.У меня есть запрос linq, который выглядит следующим образом:
_context.Equipment.Include(x => x.Group)
.Include(x => x.Status)
.Include(x => x.Area)
.Include(x => x.EquipmentType)
.Include(x => x.Parts).ThenInclude(x => x.ChildrenParts)
.Include(x => x.Parts).ThenInclude(x => x.ParentParts)
.Include(x => x.Parts).ThenInclude(x => x.Vendor)
.Include(x => x.Notes)
.Include(x => x.Department)
.Include(x => x.PMaintenance)
.Include(x => x.SystemInfo).ThenInclude(x => x.SystemUsers)
.Include(x => x.SystemInfo).ThenInclude(x => x.Frameworks)
.Include(x => x.SystemInfo).ThenInclude(x => x.VideoCards)
.Include(x => x.SystemInfo).ThenInclude(x => x.StorageDrives)
.Include(x => x.SystemInfo).ThenInclude(x => x.Software)
.Include(x => x.SystemInfo).ThenInclude(x => x.NetworkAdapters)
.Include(x => x.SystemInfo).ThenInclude(x => x.Printers)
.Include(x => x.MaintenanceHours)
.Include(x => x.Attachments)
.Include(x => x.Request)
.FirstOrDefault(x => x.EquipmentId == id);
В EF Core 2.2 это заняло менее нескольких секунд для оценки.Теперь на EF Core 3.0 требуется около 15 секунд.Что насчет EF Core 3 так медленно?Я прочитал здесь , что ef теперь создает один SQL-оператор на запрос linq, но я не вижу, как этот оператор изменился бы в этом случае.Могу ли я сделать что-то с этим запросом, что уменьшит время выполнения?
РЕДАКТИРОВАТЬ: Это на SQL Server v11.0.3