Как избежать загрузки всех дочерних записей родительской записи в EF Core - PullRequest
0 голосов
/ 10 октября 2018

Работая с приложением .Net Core Web API, использующим EF Core 2.1, я пытаюсь предотвратить загрузку всех дочерних записей родителей при использовании include.

Вот установка: API тянет IEnumerable набор клиентов.У меня есть оператор Include для извлечения CustomerType из отдельной таблицы.

[HttpGet]
public IEnumerable<Customer> GetCustomer()
{
    IEnumerable<Customer> customerList = _context.Customer
        .Include(i => i.CustomerType);
    return customerList;
}

Когда возвращается коллекция IEnumerable, каждый Customer содержит объект CustomerType, который также включает в себя коллекцию Customer всех клиентов с этим CustomerType.Как вы можете себе представить, это создает огромный набор данных.

Как запретить EF Core включать коллекцию CustomerType Customer?Я попытался отключить отложенную загрузку с помощью

_context.ChangeTracker.LazyLoadingEnabled = false;

, но это не дало эффекта.

1 Ответ

0 голосов
/ 12 октября 2018

Основываясь на ответе vivek, я успешно обновил API следующим образом:

[HttpGet]
public object GetCustomer()
{
    var customerList = _context.Customer
        .Select(s => new 
        {
            s,
            s.CustomerType.CustomerType
        });
    return customerList;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...