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

            if (date == DateTime.MinValue)
            {
                CacheData <TData, TDataAccess, TDatabase>(lambda, keyFunc);
            }
        }
Example #3
0
        /// <summary>
        ///     缓存这些对象
        /// </summary>
        /// <returns>数据</returns>
        public void RefreshCache <TData, TDataAccess>(long id, Func <TData, bool> lambda = null)
            where TDataAccess : MySqlTable <TData, MySqlDataBase>, new()
            where TData : EditDataObject, IIdentityData, new()
        {
            if (id <= 0)
            {
                return;
            }
            var access = new TDataAccess();
            var data   = access.LoadByPrimaryKey(id);

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