예제 #1
0
 /// <summary>
 /// 移除缓存
 /// </summary>
 /// <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>
 public static void RemoveUseModel(this IEFQueryCache cache, string tableName, string cacheType, string sql,
                                   object sqlParamModel, IEnumerable <string> ignoreProptsForParamModel)
 {
     cache.Remove(tableName, cacheType,
                  EFHelper.Services.EFCoreExUtility.CombineSqlAndParamsToString(sql,
                                                                                EFHelper.Services.ObjReflector.GetPublicInstanceProptValues(sqlParamModel, ignoreProptsForParamModel)));
 }
예제 #2
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));
 }
예제 #3
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));
 }
        public LuaSqlL2QueryCachePolicyExecutor(IEFQueryCache cache, IEFCoreExtendUtility util)
        {
            cache.CheckNull(nameof(cache));
            util.CheckNull(nameof(util));

            _cache = cache;
            _util  = util;
        }
예제 #5
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));
 }
예제 #6
0
        public LuaSqlConfigManager(IEFQueryCache efcache, ISqlExecutor sqlExecutor,
                                   ISqlParamConverter sqlParamConverter, ILuaSqlPolicyManager policyExecutorMgr,
                                   IObjectReflector objReflec, IEFCoreExtendUtility util, ILuaFuncManager luafuncs, ILuaSqlConfig config)
            : base(sqlExecutor, sqlParamConverter, policyExecutorMgr, util, config)
        {
            objReflec.CheckNull(nameof(objReflec));
            efcache.CheckNull(nameof(efcache));
            luafuncs.CheckNull(nameof(luafuncs));

            _luafuncs  = luafuncs;
            _efcache   = efcache;
            _objReflec = objReflec;

            //添加默认的策略
            AddDefaultPolicies();
        }
        public SqlConfigManagerBase(ISqlConfigExecutorCreator sqlConfigExecutorCreator, IEFQueryCache efcache,
                                    ISqlParamConverter sqlParamConverter, ISqlPolicyManager policyExecutorMgr,
                                    IObjectReflector objReflec, IEFCoreExtendUtility util)
        {
            sqlConfigExecutorCreator.CheckNull(nameof(sqlConfigExecutorCreator));
            efcache.CheckNull(nameof(efcache));
            sqlParamConverter.CheckNull(nameof(sqlParamConverter));
            policyExecutorMgr.CheckNull(nameof(policyExecutorMgr));
            objReflec.CheckNull(nameof(objReflec));
            util.CheckNull(nameof(util));

            _sqlParamConverter        = sqlParamConverter;
            _efcache                  = efcache;
            _sqlConfigExecutorCreator = sqlConfigExecutorCreator;
            _policyMgr                = policyExecutorMgr;
            _objReflec                = objReflec;
            _util = util;

            _config = new SqlConfig(OnModified);
            _init   = new InitAction(DoInit);

            //添加默认的策略
            AddDefaultPolicies();
        }
예제 #8
0
 /// <summary>
 /// 移除FirstOrDefault缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <param name="cache"></param>
 /// <param name="query"></param>
 public static void FirstOrDefaultRemove <TEntity>(this IEFQueryCache cache, IQueryable query)
 {
     cache.Remove <TEntity>(_cacheType, query);
 }
예제 #9
0
 /// <summary>
 /// 移除FirstOrDefault缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <param name="cache"></param>
 /// <param name="cacheKey">缓存的key</param>
 public static void FirstOrDefaultRemove <TEntity>(this IEFQueryCache cache, string cacheKey)
 {
     cache.Remove <TEntity>(_cacheType, cacheKey);
 }
 /// <summary>
 /// 移除SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheKey">缓存的key</param>
 public static void ScalarRemove(this IEFQueryCache cache, string tableName, string cacheKey)
 {
     cache.Remove(tableName, _cacheType, cacheKey);
 }
 /// <summary>
 /// 移除指定表下的所有SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <param name="cache"></param>
 public static void ScalarRemove <TEntity>(this IEFQueryCache cache)
 {
     cache.Remove <TEntity>(_cacheType);
 }
예제 #12
0
 /// <summary>
 /// 移除缓存
 /// </summary>
 /// <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>
 public static void RemoveUseModel(this IEFQueryCache cache, Type tableEntityType, string cacheType, string sql,
                                   object sqlParamModel, IEnumerable <string> ignoreProptsForParamModel)
 {
     cache.RemoveUseModel(EFHelper.Services.EFCoreExUtility.GetTableName(tableEntityType), cacheType,
                          sql, sqlParamModel, ignoreProptsForParamModel);
 }
 /// <summary>
 /// 移除SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <param name="cache"></param>
 /// <param name="cacheKey">缓存的key</param>
 public static void ScalarRemove <TEntity>(this IEFQueryCache cache, string cacheKey)
 {
     cache.Remove <TEntity>(_cacheType, cacheKey);
 }
예제 #14
0
 /// <summary>
 /// 移除缓存(指定表下的所有缓存)
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 public static void Remove(this IEFQueryCache cache, Type tableEntityType)
 {
     cache.Remove(EFHelper.Services.EFCoreExUtility.GetTableName(tableEntityType));
 }
예제 #15
0
 /// <summary>
 /// 移除指定表下的所有FirstOrDefault缓存
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 public static void FirstOrDefaultRemove(this IEFQueryCache cache, string tableName)
 {
     cache.Remove(tableName, _cacheType);
 }
예제 #16
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));
 }
예제 #17
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));
 }
예제 #18
0
 /// <summary>
 /// 移除缓存
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 public static void Remove(this IEFQueryCache cache, Type tableEntityType, string cacheType, string sql,
                           ICollection <IDataParameter> sqlParams)
 {
     cache.Remove(EFHelper.Services.EFCoreExUtility.GetTableName(tableEntityType), cacheType,
                  sql, sqlParams);
 }
예제 #19
0
 /// <summary>
 /// 移除缓存
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 public static void Remove(this IEFQueryCache cache, string tableName, string cacheType, string sql,
                           ICollection <IDataParameter> sqlParams)
 {
     cache.Remove(tableName, cacheType,
                  EFHelper.Services.EFCoreExUtility.CombineSqlAndParamsToString(sql, sqlParams));
 }
예제 #20
0
 /// <summary>
 /// 移除缓存
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 public static void RemoveUseDict(this IEFQueryCache cache, Type tableEntityType, string cacheType, string sql,
                                  IDictionary <string, object> sqlParams)
 {
     cache.RemoveUseDict(EFHelper.Services.EFCoreExUtility.GetTableName(tableEntityType), cacheType,
                         sql, sqlParams);
 }
예제 #21
0
 /// <summary>
 /// 移除指定表下的所有FirstOrDefault缓存
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <param name="cache"></param>
 public static void FirstOrDefaultRemove <TEntity>(this IEFQueryCache cache)
 {
     cache.Remove <TEntity>(_cacheType);
 }
예제 #22
0
 /// <summary>
 /// 移除缓存(指定表下的所有缓存)
 /// </summary>
 /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam>
 /// <param name="cache"></param>
 public static void Remove <TEntity>(this IEFQueryCache cache)
 {
     cache.Remove(typeof(TEntity));
 }
예제 #23
0
 /// <summary>
 /// 移除指定表下的所有FirstOrDefault缓存
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 public static void FirstOrDefaultRemove(this IEFQueryCache cache, Type tableEntityType)
 {
     cache.Remove(tableEntityType, _cacheType);
 }
 /// <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));
 }
예제 #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));
 }
예제 #26
0
 /// <summary>
 /// 移除缓存
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableName">表名</param>
 /// <param name="cacheType">缓存的类型</param>
 /// <param name="sql"></param>
 /// <param name="sqlParams">sql的参数</param>
 public static void RemoveUseDict(this IEFQueryCache cache, string tableName, string cacheType, string sql,
                                  IDictionary <string, object> sqlParams)
 {
     cache.Remove(tableName, cacheType,
                  EFHelper.Services.EFCoreExUtility.CombineSqlAndParamsToString(sql, sqlParams));
 }
예제 #27
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));
 }
 /// <summary>
 /// 移除指定表下的所有SqlScalar缓存(缓存的类型为:scalar)
 /// </summary>
 /// <param name="cache"></param>
 /// <param name="tableEntityType">表的实体类型(用于获取表名)</param>
 public static void ScalarRemove(this IEFQueryCache cache, Type tableEntityType)
 {
     cache.Remove(tableEntityType, _cacheType);
 }
예제 #29
0
        public LuaSqlClearCachePolicyExecutor(IEFQueryCache cache)
        {
            cache.CheckNull(nameof(cache));

            _cache = cache;
        }
 /// <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));
 }