Вы можете отбросить промежуточные ToList
звонки.Они без необходимости материализуют запрос в список.Похоже, ваш репозиторий должен запрашивать базу данных.ToList
форсирует оценку на стороне клиента, что существенно снижает производительность.Используйте SQL Server Profiler, чтобы понять, что я имею в виду.
Вероятно, _collectionManager.GetAll()
должен вернуть IQueryable
.
Ваш GroupBy
реализует только Distinct
.Затем из каждой группы вы выбираете первую.Но все объекты в одной группе идентичны.Я подозреваю, что это логическая ошибка ...
Поскольку запрос существует, вы можете сделать его следующим образом:
var results =
_collectionManager.GetAll()
.Select(c => new LookupModel
{
Id = c.StoreId,
DisplayName = c.StoreName
})
.Distinct()
.ToList();
Что гораздо удобнее для чтения, чем использование всех этих временных переменных.