У меня есть представление AdvertView в моей базе данных, это простое соединение между некоторыми таблицами (реклама, клиент, свойства).Затем у меня есть простой запрос linq для получения всех объявлений для клиента:
public IEnumerable<AdvertView> GetAdvertForCustomerID(int customerID)
{
var advertList =
from advert in _dbContext.AdvertViews
where advert.Customer_ID.Equals(customerID)
select advert;
return advertList;
}
Затем я хочу сопоставить это с modelItems для моего приложения MVC:
public List<AdvertModelItem> GetAdvertsByCustomer(int customerId)
{
List<AdvertModelItem> lstAdverts = new List<AdvertModelItem>();
List<AdvertView> adViews = _dataHandler.GetAdvertForCustomerID(customerId).ToList();
foreach(AdvertView adView in adViews)
{
lstAdverts.Add(_advertMapper.MapToModelClass(adView));
}
return lstAdverts;
}
Я ожидалесть некоторые проблемы с производительностью SQL, но проблема, похоже, связана с функцией .ToList ().Я использую профилировщик производительности ANTS, и он сообщает, что общее время выполнения функции составляет 1,400 мс, и 850 из них с ToList ().Итак, мой вопрос: почему функция tolist занимает так много времени здесь?