Exemplo n.º 1
0
 /// <summary>
 ///     缓存这些对象
 /// </summary>
 /// <returns>数据</returns>
 public void RemoveCache <TData>(long id)
 {
     if (id > 0)
     {
         Client.Remove(DataKeyBuilder.DataKey <TData>(id));
     }
 }
Exemplo n.º 2
0
        /// <summary>
        ///     如果没有缓存过这些对象,就缓存它
        /// </summary>
        /// <param name="lambda">查询表达式</param>
        /// <param name="keyFunc">设置键的方法,可为空</param>
        /// <returns>数据</returns>
        public void TryCacheData <TData, TDataAccess>(Expression <Func <TData, bool> > lambda, Func <TData, string> keyFunc = null)
            where TDataAccess : IDataTable <TData>, new()
            where TData : EditDataObject, IIdentityData, new()
        {
            var key  = DataKeyBuilder.DataKey <TData>(0);
            var date = GetValue <DateTime>(key);

            if (date == DateTime.MinValue)
            {
                CacheData <TData, TDataAccess>(lambda, keyFunc);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///     缓存这些对象
        /// </summary>
        /// <returns>数据</returns>
        public async Task RefreshCache <TData, TDataAccess>(long id, Func <TData, bool> lambda = null)
            where TDataAccess : IDataTable <TData>, new()
            where TData : EditDataObject, IIdentityData, new()
        {
            if (id <= 0)
            {
                return;
            }
            var access = new TDataAccess();
            var data   = await access.LoadByPrimaryKeyAsync(id);

            if (data != null && (lambda == null || lambda(data)))
            {
                await Set(DataKeyBuilder.DataKey(data), data);
            }
            else
            {
                await Redis.RemoveKey(DataKeyBuilder.DataKey <TData>(id));
            }
        }
Exemplo n.º 4
0
 /// <summary>
 ///     缓存这些对象
 /// </summary>
 /// <returns>数据</returns>
 public Task ClearCache <TData>()
 {
     return(FindAndRemoveKey(DataKeyBuilder.DataKey <TData>("*")));
 }
Exemplo n.º 5
0
 /// <summary>
 /// 缓存数据
 /// </summary>
 /// <typeparam name="TData"></typeparam>
 /// <param name="data">键的组合</param>
 /// <returns></returns>
 public void SetEntity <TData>(TData data) where TData : class, IIdentityData
 {
     Set(DataKeyBuilder.DataKey(data), data);
 }
Exemplo n.º 6
0
 /// <summary>
 /// 读缓存
 /// </summary>
 /// <typeparam name="TData"></typeparam>
 /// <param name="id">键的组合</param>
 /// <param name="def">默认值</param>
 /// <returns></returns>
 public TData GetEntity <TData>(long id, TData def = null) where TData : class, new()
 {
     return(id == 0 ? def ?? new TData() : Get <TData>(DataKeyBuilder.DataKey <TData>(id)) ?? def ?? new TData());
 }
Exemplo n.º 7
0
 /// <summary>
 ///     缓存这些对象
 /// </summary>
 /// <returns>数据</returns>
 public void ClearCache <TData>()
 {
     FindAndRemoveKey(DataKeyBuilder.DataKey <TData>("*"));
 }