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); }
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); }
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); }