Example #1
0
        public IEnumerable <object> SetterDatas(BaseHadlerConfig config, MySqlDataReader dataReader, IEnumerable <string> columns)
        {
            ICollection <object> datas = new List <object>();
            var queryConfig            = config as QueryConfig;

            string[] alias = null;
            if (queryConfig != null)
            {
                alias = queryConfig.Alais;
            }

            var count       = columns.Count();
            var alaisParser = new AlaisParser(columns, alias);

            while (dataReader.Read())
            {
                dynamic data = new ExpandoObject();
                for (var i = 0; i < count; i++)
                {
                    var col = columns.ElementAt(i);
                    ((IDictionary <string, object>)data).Add(alaisParser.GetName(i, col), dataReader[col]);;
                }

                datas.Add(data);
            }

            return(datas);
        }
Example #2
0
        public static IValueSetter Create(this BaseHadlerConfig queryConfig)
        {
            IValueSetter valueSetter;

            if (queryConfig.Config == null ||
                string.IsNullOrEmpty(queryConfig.Config[TypeStr].ToSingleData <string>(string.Empty)))
            {
                valueSetter = new DynamicValueSetter();
            }
            else
            {
                var typeStr = queryConfig.Config[TypeStr].ToSingleData <string>().Split(SqlKeyWorld.Split3);
                valueSetter = new ReflectValueSetter(typeStr[0], typeStr[1]);
            }

            return(valueSetter);
        }
Example #3
0
        public static object OnQueryEnd(this BaseHadlerConfig config, object data, IDictionary <string, object> queryParams)
        {
            if (config.Config == null || config.Config[Query_End_Call] == null)
            {
                return(data);
            }

            var typeStrs = config.Config[Query_End_Call].ToString().Split(SqlKeyWorld.Split3);

            if (typeStrs.Length != 2)
            {
                throw new ArgumentException("query_end_call配置错误");
            }

            var queryEnd = (IQueryEnd)ReflectUtil.ReflectUtil.CreateInstance(typeStrs[0], typeStrs[1]);

            return(queryEnd.Handler(config, data, queryParams));
        }
        public IEnumerable <object> SetterDatas(BaseHadlerConfig config, MySqlDataReader dataReader, IEnumerable <string> columns)
        {
            ICollection <object> datas = new List <object>();
            var queryConfig            = config as QueryConfig;

            string[] alias = null;
            if (queryConfig != null)
            {
                alias = queryConfig.Alais;
            }

            var count       = columns.Count();
            var alaisParser = new AlaisParser(columns, alias);

            while (dataReader.Read())
            {
                object data = ReflectUtil.ReflectUtil.CreateInstance(AssemblyString, TypeStr);
                var    type = data.GetType();
                for (var i = 0; i < count; i++)
                {
                    var col      = columns.ElementAt(i);
                    var realName = alaisParser.GetName(i, col);
                    var property = type.GetProperty(realName);
                    if (property == null)
                    {
                        continue;
                    }

                    if (dataReader[col].GetType() != typeof(System.DBNull))
                    {
                        property.SetValue(data, dataReader[col]);
                    }
                }

                datas.Add(data);
            }

            return(datas);
        }
        public IEnumerable <object> SetterDatas(BaseHadlerConfig config, MySqlDataReader dataReader, IEnumerable <string> columns)
        {
            string field = string.Empty;

            if (columns.Count() == 1)
            {
                field = columns.First();
            }
            else
            {
                field = config.Config["simple_field"].ToString();
            }

            ICollection <object> datas = new List <object>();

            while (dataReader.Read())
            {
                var val = dataReader[field];
                datas.Add(val);
            }

            return(datas);
        }