/// <summary>
 /// SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <param name="db"></param>
 /// <param name="tableName">表名</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static object ScalarCacheUseDict(this DbContext db, string tableName, string sql,
                                         IDictionary <string, object> sqlParams,
                                         IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(EFHelper.Services.Cache.CacheUseDict(tableName, _cacheType, sql, sqlParams,
                                                 () => db.ScalarUseDict(sql, sqlParams), expiryPolicy));
 }
 /// <summary>
 /// SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <param name="db"></param>
 /// <param name="tableName">表名</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static object ScalarCache(this DbContext db, string tableName, string sql,
                                  IDataParameter[] sqlParams,
                                  IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(EFHelper.Services.Cache.Cache(tableName, _cacheType, sql, sqlParams,
                                          () => db.Scalar(sql, sqlParams), expiryPolicy));
 }
 /// <summary>
 /// SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <param name="db"></param>
 /// <param name="tableName">表名</param>
 /// <param name="sql"></param>
 /// <param name="sqlParamModel">sql的参数模型对象</param>
 /// <param name="ignoreProptsForParamModel">sql的参数模型对象中需要忽略的属性名</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static object ScalarCacheUseModel(this DbContext db, string tableName, string sql,
                                          object sqlParamModel, IEnumerable <string> ignoreProptsForParamModel,
                                          IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(EFHelper.Services.Cache.CacheUseModel(tableName, _cacheType, sql, sqlParamModel, ignoreProptsForParamModel,
                                                  () => db.ScalarUseModel(sql, sqlParamModel, ignoreProptsForParamModel), expiryPolicy));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParamModel">sql的参数模型对象</param>
 /// <param name="ignoreProptsForParamModel">sql的参数模型对象中需要忽略的属性名</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn CacheUseModel <TRtn>(this IEFQueryCache cache, Type tableEntityType, string cacheType, string sql,
                                         object sqlParamModel, IEnumerable <string> ignoreProptsForParamModel,
                                         Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.CacheUseModel(EFHelper.Services.EFCoreExUtility.GetTableName(tableEntityType), cacheType,
                                sql, sqlParamModel, ignoreProptsForParamModel, toDBGet, expiryPolicy));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// SqlQuery缓存(缓存的类型为:query)
 /// </summary>
 /// <typeparam name="T">缓存的数据类型</typeparam>
 /// <param name="db"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="ignoreProptsForRtnType">数据类型需要忽略的属性名</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static IReadOnlyList <T> QueryCache <T>(this DbContext db, Type tableEntityType, string sql,
                                                IDataParameter[] sqlParams, IEnumerable <string> ignoreProptsForRtnType,
                                                IQueryCacheExpiryPolicy expiryPolicy)
     where T : new()
 {
     return(EFHelper.Services.Cache.Cache(tableEntityType, _cacheType, sql, sqlParams,
                                          () => db.Query <T>(sql, sqlParams, ignoreProptsForRtnType), expiryPolicy));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// SqlQuery缓存(缓存的类型为:query)
 /// </summary>
 /// <typeparam name="T">缓存的数据类型</typeparam>
 /// <param name="db"></param>
 /// <param name="tableName">表名</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="ignoreProptsForRtnType">数据类型需要忽略的属性名</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static IReadOnlyList <T> QueryCacheUseDict <T>(this DbContext db, string tableName, string sql,
                                                       IDictionary <string, object> sqlParams, IEnumerable <string> ignoreProptsForRtnType,
                                                       IQueryCacheExpiryPolicy expiryPolicy)
     where T : new()
 {
     return(EFHelper.Services.Cache.CacheUseDict(tableName, _cacheType, sql, sqlParams,
                                                 () => db.QueryUseDict <T>(sql, sqlParams, ignoreProptsForRtnType), expiryPolicy));
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParamModel">sql的参数模型对象</param>
 /// <param name="ignoreProptsForParamModel">sql的参数模型对象中需要忽略的属性名</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn CacheUseModel <TRtn>(this IEFQueryCache cache, string tableName, string cacheType, string sql,
                                         object sqlParamModel, IEnumerable <string> ignoreProptsForParamModel, Func <TRtn> toDBGet,
                                         IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(tableName, cacheType,
                        EFHelper.Services.EFCoreExUtility.CombineSqlAndParamsToString(sql,
                                                                                      EFHelper.Services.ObjReflector.GetPublicInstanceProptValues(sqlParamModel, ignoreProptsForParamModel)),
                        toDBGet, expiryPolicy));
 }
Ejemplo n.º 8
0
 /// <summary>
 /// SqlQuery缓存(缓存的类型为:query)
 /// </summary>
 /// <typeparam name="T">缓存的数据类型</typeparam>
 /// <param name="db"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 /// <param name="sql"></param>
 /// <param name="sqlParamModel">sql的参数模型对象</param>
 /// <param name="ignoreProptsForParamModel">sql的参数模型对象中需要忽略的属性名</param>
 /// <param name="ignoreProptsForRtnType">数据类型需要忽略的属性名</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static IReadOnlyList <T> QueryCacheUseModel <T>(this DbContext db, Type tableEntityType, string sql,
                                                        object sqlParamModel, IEnumerable <string> ignoreProptsForParamModel,
                                                        IEnumerable <string> ignoreProptsForRtnType,
                                                        IQueryCacheExpiryPolicy expiryPolicy)
     where T : new()
 {
     return(EFHelper.Services.Cache.CacheUseModel(tableEntityType, _cacheType, sql, sqlParamModel, ignoreProptsForParamModel,
                                                  () => db.QueryUseModel <T>(sql, sqlParamModel, ignoreProptsForParamModel, ignoreProptsForRtnType), expiryPolicy));
 }
Ejemplo n.º 9
0
        public TRtn Cache <TRtn>(string tableName, string cacheType, string cacheKey, Func <TRtn> toDBGet,
                                 IQueryCacheExpiryPolicy expiryPolicy, Type rtnType = null)
        {
            IQueryCache cache;

            if (CacheContainerMgr.TryGetIfUseCache(tableName, out cache))
            {
                return(cache.Cache(cacheType, cacheKey, toDBGet, expiryPolicy, rtnType));
            }
            else
            {
                return(toDBGet());
            }
        }
Ejemplo n.º 10
0
        public TRtn Cache <TRtn>(string cacheType, string cacheKey, Func <TRtn> toDBGet,
                                 IQueryCacheExpiryPolicy expiryPolicy, Type rtnType = null)
        {
            cacheKey.CheckStringIsNullOrEmpty(nameof(cacheKey));
            cacheType.CheckStringIsNullOrEmpty(nameof(cacheType));
            //toDBGet.CheckNull(nameof(toDBGet));

            TRtn rtn;
            bool bRtn;

            if (expiryPolicy == null)
            {
                bRtn = TryGetCache(cacheType, cacheKey, out rtn, rtnType);
            }
            else
            {
                var expiryTime = expiryPolicy.GetExpiryTime();
                if (expiryPolicy.IsUpdateEach && expiryTime.HasValue)
                {
                    bRtn = TryGetCacheAndUpdateCacheTime(cacheType, cacheKey, expiryTime.Value, out rtn, rtnType);
                }
                else
                {
                    bRtn = TryGetCache(cacheType, cacheKey, out rtn, rtnType);
                }
            }

            if (!bRtn)
            {
                rtn = toDBGet();
                if (expiryPolicy == null)
                {
                    SetCache(cacheType, cacheKey, rtn, rtnType);
                }
                else
                {
                    var expiryTime = expiryPolicy.GetExpiryTime();
                    if (expiryTime.HasValue)
                    {
                        SetCache(cacheType, cacheKey, rtn, expiryTime.Value, rtnType);
                    }
                    else
                    {
                        SetCache(cacheType, cacheKey, rtn, rtnType);
                    }
                }
            }

            return(rtn);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// FirstOrDefault缓存
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="query"></param>
 /// <param name="tableName">表名</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static T FirstOrDefaultCache <T>(this IQueryable <T> query, string tableName, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(EFHelper.Services.Cache.FirstOrDefaultCache <T>(tableName, query, expiryPolicy));
 }
Ejemplo n.º 12
0
 /// <summary>
 /// SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheKey">缓存的key</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static object ScalarCache(this IEFQueryCache cache, string tableName, string cacheKey, Func <object> toDBGet,
                                  IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(tableName, _cacheType, cacheKey, toDBGet, expiryPolicy));
 }
Ejemplo n.º 13
0
 /// <summary>
 /// FirstOrDefault缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <typeparam name="T">IQueryable的泛型类型</typeparam>
 /// <param name="query"></param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static T FirstOrDefaultCache <TEntity, T>(this IQueryable <T> query, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(EFHelper.Services.Cache.FirstOrDefaultCache <TEntity, T>(query, expiryPolicy));
 }
Ejemplo n.º 14
0
 /// <summary>
 /// SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <param name="cache"></param>
 /// <param name="cacheKey">缓存的key</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static object ScalarCache <TEntity>(this IEFQueryCache cache, string cacheKey, Func <object> toDBGet,
                                            IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache <TEntity, object>(_cacheType, cacheKey, toDBGet, expiryPolicy));
 }
 /// <summary>
 /// ToList缓存
 /// </summary>
 /// <typeparam name="T">IQueryable的泛型类型</typeparam>
 /// <param name="query"></param>
 /// <param name="tableName">表名</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static IReadOnlyList <T> ListCache <T>(this IQueryable <T> query, string tableName, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(EFHelper.Services.Cache.ListCache <T>(tableName, query, expiryPolicy));
 }
Ejemplo n.º 16
0
 /// <summary>
 /// FirstOrDefault缓存
 /// </summary>
 /// <typeparam name="T">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheKey">缓存的类型</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static T FirstOrDefaultCache <T>(this IEFQueryCache cache, string tableName, string cacheKey,
                                         Func <T> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(tableName, _cacheType, cacheKey, toDBGet, expiryPolicy));
 }
Ejemplo n.º 17
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn CacheUseDict <TRtn>(this IEFQueryCache cache, Type tableEntityType, string cacheType, string sql,
                                        IDictionary <string, object> sqlParams, Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.CacheUseDict(EFHelper.Services.EFCoreExUtility.GetTableName(tableEntityType), cacheType,
                               sql, sqlParams, toDBGet, expiryPolicy));
 }
Ejemplo n.º 18
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn Cache <TEntity, TRtn>(this IEFQueryCache cache, string cacheType, string sql,
                                          ICollection <IDataParameter> sqlParams, Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(typeof(TEntity), cacheType, sql, sqlParams, toDBGet, expiryPolicy));
 }
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="query"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn Cache <TRtn>(this IQueryable query, string tableName, string cacheType, Func <TRtn> toDBGet,
                                 IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(EFHelper.Services.Cache.Cache <TRtn>(tableName, cacheType, query, toDBGet, expiryPolicy));
 }
Ejemplo n.º 20
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn CacheUseDict <TEntity, TRtn>(this IEFQueryCache cache, string cacheType, string sql,
                                                 IDictionary <string, object> sqlParams, Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.CacheUseDict(typeof(TEntity), cacheType, sql, sqlParams, toDBGet, expiryPolicy));
 }
 /// <summary>
 /// ToList缓存
 /// </summary>
 /// <typeparam name="T">List缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheKey">缓存的key</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static IReadOnlyList <T> ListCache <T>(this IEFQueryCache cache, string tableName, string cacheKey,
                                               Func <IReadOnlyList <T> > toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(tableName, _cacheType, cacheKey, toDBGet, expiryPolicy));
 }
Ejemplo n.º 22
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="cacheKey"></param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn Cache <TRtn>(this IEFQueryCache cache, Type tableEntityType, string cacheType, string cacheKey,
                                 Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(EFHelper.Services.EFCoreExUtility.GetTableName(tableEntityType), cacheType, cacheKey, toDBGet, expiryPolicy));
 }
Ejemplo n.º 23
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="cacheKey">缓存的key</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn Cache <TEntity, TRtn>(this IEFQueryCache cache, string cacheType,
                                          string cacheKey, Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(typeof(TEntity), cacheType, cacheKey, toDBGet, expiryPolicy));
 }
Ejemplo n.º 24
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParamModel">sql的参数模型对象</param>
 /// <param name="ignoreProptsForParamModel">sql的参数模型对象中需要忽略的属性名</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn CacheUseModel <TEntity, TRtn>(this IEFQueryCache cache, string cacheType, string sql,
                                                  object sqlParamModel, IEnumerable <string> ignoreProptsForParamModel, Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.CacheUseModel(typeof(TEntity), cacheType, sql, sqlParamModel, ignoreProptsForParamModel,
                                toDBGet, expiryPolicy));
 }
Ejemplo n.º 25
0
 /// <summary>
 /// FirstOrDefault缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <typeparam name="T">IQueryable的泛型类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="query"></param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static T FirstOrDefaultCache <TEntity, T>(this IEFQueryCache cache, IQueryable <T> query, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache <TEntity, T>(_cacheType, query, () => query.FirstOrDefault(), expiryPolicy));
 }
 /// <summary>
 /// ToList缓存
 /// </summary>
 /// <typeparam name="T">IQueryable的泛型类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="query"></param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static IReadOnlyList <T> ListCache <T>(this IEFQueryCache cache, string tableName, IQueryable <T> query, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(tableName, _cacheType, query, () => query.ToList(), expiryPolicy));
 }
Ejemplo n.º 27
0
 /// <summary>
 /// FirstOrDefault缓存
 /// </summary>
 /// <typeparam name="T">IQueryable的泛型类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="query"></param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static T FirstOrDefaultCache <T>(this IEFQueryCache cache, string tableName, IQueryable <T> query, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(tableName, _cacheType, query, () => query.FirstOrDefault(), expiryPolicy));
 }
 /// <summary>
 /// ToList缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <typeparam name="T">IQueryable的泛型类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="query"></param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static IReadOnlyList <T> ListCache <TEntity, T>(this IEFQueryCache cache, IQueryable <T> query, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache <TEntity, IReadOnlyList <T> >(_cacheType, query, () => query.ToList(), expiryPolicy));
 }
Ejemplo n.º 29
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn CacheUseDict <TRtn>(this IEFQueryCache cache, string tableName, string cacheType, string sql,
                                        IDictionary <string, object> sqlParams, Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(tableName, cacheType,
                        EFHelper.Services.EFCoreExUtility.CombineSqlAndParamsToString(sql, sqlParams),
                        toDBGet, expiryPolicy));
 }
Ejemplo n.º 30
0
 /// <summary>
 /// 缓存
 /// </summary>
 /// <typeparam name="TRtn">缓存的数据类型</typeparam>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 /// <param name="toDBGet">用于初始化缓存数据(例如:到数据库获取数据进行缓存的操作)</param>
 /// <param name="expiryPolicy">缓存过期策略</param>
 /// <returns></returns>
 public static TRtn Cache <TRtn>(this IEFQueryCache cache, Type tableEntityType, string cacheType, string sql,
                                 ICollection <IDataParameter> sqlParams, Func <TRtn> toDBGet, IQueryCacheExpiryPolicy expiryPolicy)
 {
     return(cache.Cache(EFHelper.Services.EFCoreExUtility.GetTableName(tableEntityType), cacheType,
                        sql, sqlParams, toDBGet, expiryPolicy));
 }