EF Core и ASP. net MVC Слишком большой запрос - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь определить лучший способ изменить мою модель данных или запрос linq, чтобы уменьшить количество избыточных SQL запрашиваемых столбцов.

У меня есть модель клиента, модель изделия и сущность соединения customerItem.

Мне нужно имя клиента и имя товара из модели клиента и модели изделия соответственно.

Если я просматриваю SQL с SQL профилировщиком, его Выбрать * из всех 3 таблиц.

Как я могу выбрать * из customerITem ТОЛЬКО включить customer.customerName, Item.ItemName?

var aMRSContext = _context.CustomerItems.Include (c => c .Customer). Включить (c => c .Item);

1 Ответ

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

Вы можете использовать ViewModel для отображения данных:

public class CustomerItemVM
{
    public string CustomerName { get; set; }
    public string ItemName { get; set; }
}

Контроллер

var aMRSContext = _db.CustomerItems
            .Select(c=>new CustomerItemVM { 
                CustomerName=c.Customer.CustomerName,
                ItemName=c.Item.ItemName
            })
            .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...