Этот метод занимает больше времени, когда я анализирую через муравьиный профилировщик 1-й ин после lstStatMstCache == null
, занимая больше времени, потребляемого здесь
private List<CacheStatusMaster> GetStatuses(/*string sourceSystemName, string sourceSystemStatus, int transactionTypeId*/)
{
var lstStatMstCache = (List<CacheStatusMaster>)_provider.PullFromCache<object>("StatusList");
if (lstStatMstCache == null)
{
**var lstStatMst = _statusMasterRepository.GetAll().ToList();**
lstStatMstCache = _mapper.Map<List<StatusMap>, List<CacheStatusMaster>>(lstStatMst);
_provider.PushToCache("StatusList", lstStatMstCache);
}
return lstStatMstCache;
}
Код, сгенерированный комплиментом
private List<CacheStatusMaster> GetStatuses()
{
List<CacheStatusMaster> list = (List<CacheStatusMaster>)this._provider.PullFromCache<object>("StatusList");
if (list == null)
{
**List<StatusMap> source = Enumerable.ToList<StatusMap>(this._statusMasterRepository.GetAll());**
list = this._mapper.Map<List<StatusMap>, List<CacheStatusMaster>>(source);
this._provider.PushToCache("StatusList", list, 60);
}
return list;
}
Есть ли способ написать ту же логику с меньшими затратами времени?