当我在lstStatMstCache == null
之后通过ant profiler.1st ine分析时,此方法花费了更多时间。
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;
}
有什么办法可以以更少的时间写相同的逻辑?