using AutoMapper; using HuanMeng.MiaoYu.Code.DataAccess; using HuanMeng.MiaoYu.Model.Dto.Character; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HuanMeng.MiaoYu.Code.Cache.Special { /// /// /// /// public class CharacterEntityCache(DAO _dao, IMapper mapper) : MiaoYuDataEntityCache(_dao, CharacterCacheLock) { /// /// 锁 /// private static object CharacterCacheLock = new object(); /// /// 获取缓存数据 /// /// public override List GetDataList() { List characterCaches = null; //读取角色表 var characters = _dao.daoDbMiaoYu.context.T_Character.ToList(); if (characters == null) { return new List(); } characterCaches = mapper.Map>(characters); //查询配置表 var modelConfigs = _dao.daoDbMiaoYu.context.T_Model_Config.ToList(); foreach (var characterCache in characterCaches) { var modelConfig = modelConfigs.FirstOrDefault(it => it.Id == characterCache.ModelConfigId); if (modelConfig != null) { characterCache.ModelConfig = modelConfig; } } //移除没有配置模型的类 characterCaches.Where(it => it.ModelConfig == null).ToList().ForEach(characterCache => { characterCaches.Remove(characterCache); }); return characterCaches; } } }