/// <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;
        }
Ejemplo n.º 4
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 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);
 }