Повышение производительности Entity Framework Core EF с помощью операторов multi include - PullRequest
0 голосов
/ 25 января 2020

Я пытался улучшить производительность нескольких операторов включения в моем C#. NET Core 2.2 приложении. Любые предложения о том, как я мог бы улучшить это утверждение?

private static void IncludeAssociatedEntities(ref IQueryable<Person> query)
{
    query = query.Include(p => p.Contact);
    query = query.Include(p => p.PersonAddressAssociations);
    query = query.Include(p => p.PersonCorePropertyAssociations);
    query = query.Include(p => p.PersonAssociations).ThenInclude(a =>  a.ParentPerson);
    query = query.Include(p => p.PersonPhones);
    query = query.Include(p => p.PersonOrganizationAssociations);
    query = query.Include(p => p.PersonProjectAssociations);
}

1 Ответ

0 голосов
/ 25 января 2020

Если вы посмотрите на сгенерированный код SQL и в результате вы получите много данных для этого,

Будет намного лучше, если вы получите нужного человека, а затем заполните его желаемыми данными. .

Но если есть способ улучшить это, это будет удивительно ...

Также вы можете использовать dapper, создав оптимизированную хранимую процедуру, а затем вызвать ее

...