Лучшие практики для загрузки связанных данных в Asp. net Core Web API и EF.Core - PullRequest
0 голосов
/ 02 апреля 2020

Когда использовать Eager Загрузка или Explcit Загрузка в Asp. net Core Web API с EF Core? например, я написал этот запрос с Eager Loading. это неправильно? это я должен явная загрузка вместо быстрой загрузки?

  var plants = await _context.Plant.Include(plant => plant.Areas)
                                                 .ThenInclude(areas => areas.Units)
        .ToListAsync();

        return Ok(plants);

1 Ответ

1 голос
/ 02 апреля 2020

Ну, в большинстве случаев загрузка будет в порядке, потому что за один прием в базу данных вы получаете необходимые данные, но рассмотрите следующие примеры:

1 - Если вы собираетесь показать список заказов указанного c клиента и по щелчку на каждом заказе должны быть перечислены строки заказа, в этом случае ленивая загрузка или явная загрузка лучше. Вы не будете собирать все Строки заказа, пока вам не понадобится каждая из них.

2- Не сильно рвитесь, возьмите только то, что будете использовать:

var plants = await _context.Plant
                   .Where(some condition)
                   .Select(p => new PlantSummaryDto 
                   {
                       PlantId = p.Id,
                       PlantName = p.Name,
                       Areas = p.Areas.Select(a => new AreaSummaryDto 
                               {
                                    AreadId = a.Id,
                                    AreaName = a.Name,
                               })
                    .
                    .
                    .
                    }).ToListAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...