/// <summary> /// 指定替换对象查询,并返回对象列表 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="types"></param> /// <returns></returns> public override List <T> ExecList <T>(string sql, params Type[] types) { sql = _DBAdapter.SqlFormat(sql); var reader = GetDataReader(sql, types); double runTime; return(ObjectConvert.DataReaderToList <T>(reader, out runTime)); }
/// <summary> /// 执行存储过程返回结果集 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sp"></param> /// <returns></returns> public override List <T> RunList <T>(string sp) { var reader = dbHelper.RunDataReader(sp); ClearParame(); double runTime; return(ObjectConvert.DataReaderToList <T>(reader, out runTime)); }
/// <summary> /// 按select返回指定类型 /// </summary> /// <typeparam name="TModel"></typeparam> /// <typeparam name="TResult"></typeparam> /// <param name="query"></param> /// <returns></returns> public override List <TResult> QueryDynamic <TModel, TResult>(LambdaQuery <TModel> query) { var reader = GetQueryDynamicReader(query); double runTime; var list = ObjectConvert.DataReaderToList <TResult>(reader, out runTime, false); query.MapingTime += runTime; query.RowCount = list.Count; return(list); }
static List <object> QueryData(string key, Type type, string query, DBHelper helper) { if (cacheDatas.Count > 1000) { EventLog.Log("数据缓存超过了1000个,请检查程序调用是否正确", true); } DateTime time = DateTime.Now; System.Data.Common.DbDataReader reader; string sql; //语句 if (query.IndexOf("select ") > -1) { sql = query; reader = helper.ExecDataReader(sql); }//存储过程 else if (query.IndexOf("exec ") > -1) { string sp = query.Replace("exec ", ""); reader = helper.RunDataReader(sp); }//表名 else { sql = "select * from " + query; reader = helper.ExecDataReader(sql); } double runTime; var list = ObjectConvert.DataReaderToList <object>(reader, type, out runTime, true); string par = ""; foreach (KeyValuePair <string, object> item in helper.Params) { par += item.Key + ":" + item.Value; } //list.ForEach(b => // { // var item = b as IModel; // item.AddCacheListen(); // }); var ts = DateTime.Now - time; //WriteLog("更新查询 " + tableName + " 参数 " + par); EventLog.Log("更新查询 " + key + " 用时:" + ts.TotalSeconds + "秒", "DataCache"); return(list); }