/// <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))); }
/// <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)); }
/// <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; }
/// <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)); }
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(); }
/// <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); }
/// <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); }
/// <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); }
/// <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)); }
/// <summary> /// 移除指定表下的所有FirstOrDefault缓存 /// </summary> /// <param name="cache"></param> /// <param name="tableName">表名</param> public static void FirstOrDefaultRemove(this IEFQueryCache cache, string tableName) { cache.Remove(tableName, _cacheType); }
/// <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> /// 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> /// 移除缓存 /// </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); }
/// <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)); }
/// <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); }
/// <summary> /// 移除指定表下的所有FirstOrDefault缓存 /// </summary> /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam> /// <param name="cache"></param> public static void FirstOrDefaultRemove <TEntity>(this IEFQueryCache cache) { cache.Remove <TEntity>(_cacheType); }
/// <summary> /// 移除缓存(指定表下的所有缓存) /// </summary> /// <typeparam name="TEntity">表的实体类型(用于获取表名)</typeparam> /// <param name="cache"></param> public static void Remove <TEntity>(this IEFQueryCache cache) { cache.Remove(typeof(TEntity)); }
/// <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)); }
/// <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> /// 移除缓存 /// </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)); }
/// <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); }
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)); }