Цепочка EF Core 3.0 .Include () занимает ~ 5-10 раз больше, чем 2,2 - PullRequest
1 голос
/ 26 сентября 2019

У меня проблемы с большим запросом 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...