/// <summary> /// 设置策略类型 /// </summary> public static void SetPolicyType(this ILuaSqlPolicyManager mgr, string policyName, Type type) { if (!typeof(ISqlConfigPolicy).IsAssignableFrom(type)) { throw new ArgumentException($"The type [{type.Name}] must implement {nameof(ISqlConfigPolicy)}", nameof(type)); } mgr.PolicyTypes[policyName] = type; }
/// <summary> /// 设置用于sql执行时的策略执行器(例如:查询缓存,查询缓存清理 等等) /// </summary> public static void SetSqlExecutePolicyExecutor <T>(this ILuaSqlPolicyManager mgr, Func <T> getExecutorFunc, int priority = 0) where T : ILuaSqlExecutePolicyExecutor { var policyName = EFHelper.Services.EFCoreExUtility.GetSqlConfigPolicyName(typeof(T)); if (string.IsNullOrEmpty(policyName)) { throw new ArgumentException($"Could not find {nameof(SqlConfigPolicyAttribute)} in {typeof(T).Name} type"); } mgr.SetExecutor(policyName, getExecutorFunc as Func <ILuaSqlExecutePolicyExecutor>, priority); }
/// <summary> /// 设置策略类型 /// </summary> public static void SetPolicyType(this ILuaSqlPolicyManager mgr, Type type) { if (!typeof(ISqlConfigPolicy).IsAssignableFrom(type)) { throw new ArgumentException($"The type [{type.Name}] must implement {nameof(ISqlConfigPolicy)}", nameof(type)); } var policyName = EFHelper.Services.EFCoreExUtility.GetSqlConfigPolicyName(type); if (string.IsNullOrEmpty(policyName)) { throw new ArgumentException($"Could not find {nameof(SqlConfigPolicyAttribute)} in type [{type.Name}]", nameof(type)); } mgr.PolicyTypes[policyName] = type; }
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 LuaSqlConfigManagerBase( ISqlExecutor sqlExecutor, ISqlParamConverter sqlParamConverter, ILuaSqlPolicyManager policyExecutorMgr, IEFCoreExtendUtility util, ILuaSqlConfig config) { sqlExecutor.CheckNull(nameof(sqlExecutor)); sqlParamConverter.CheckNull(nameof(sqlParamConverter)); policyExecutorMgr.CheckNull(nameof(policyExecutorMgr)); util.CheckNull(nameof(util)); config.CheckNull(nameof(config)); _sqlParamConverter = sqlParamConverter; _policyMgr = policyExecutorMgr; _util = util; _sqlExecutor = sqlExecutor; _config = config; _config.OnModified += OnModified; _init = new InitAction(DoInit); }
public LuaSqlConfigInitExecutor(ILuaSqlPolicyManager policyMgr) { policyMgr.CheckNull(nameof(policyMgr)); _policyMgr = policyMgr; }
/// <summary> /// 设置策略类型 /// </summary> public static void SetPolicyType <T>(this ILuaSqlPolicyManager mgr, string policyName) where T : ISqlConfigPolicy { mgr.SetPolicyType(policyName, typeof(T)); }
/// <summary> /// 设置策略类型 /// </summary> public static void SetPolicyType <T>(this ILuaSqlPolicyManager mgr) where T : ISqlConfigPolicy { mgr.SetPolicyType(typeof(T)); }
/// <summary> /// sql执行时的策略执行器的调用 /// </summary> /// <param name="mgr"></param> /// <param name="policies"></param> /// <param name="info"></param> public static void InvokeExecutePolicyExecutors <T>(this ILuaSqlPolicyManager mgr, IDictionary <string, ISqlConfigPolicy> policies, T info) where T : ILuaSqlPolicyExecutorInfo, ILuaSqlExecutePolicyExecutorInfo { mgr.InvokeExecutors(policies, info, typeof(ILuaSqlExecutePolicyExecutorInfo)); }
/// <summary> /// 设置用于sql执行时的策略执行器(例如:查询缓存,查询缓存清理 等等) /// </summary> public static void SetSqlExecutePolicyExecutor(this ILuaSqlPolicyManager mgr, string policyName, Func <ILuaSqlExecutePolicyExecutor> getExecutorFunc, int priority = 0) { mgr.SetExecutor(policyName, getExecutorFunc, priority); }