/// <summary> /// 执行存储过程返回结果集 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sp"></param> /// <returns></returns> public List <T> RunList <T>(string sp) where T : class, new() { var reader = helper.RunDataReader(sp); ClearParame(); return(ObjectConvert.DataReaderToList <T>(reader)); }
/// <summary> /// 将查询自动转化为存储过程执行 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="types"></param> /// <returns></returns> public List <T> AutoSpQuery <T>(string sql, params Type[] types) where T : class, new() { var reader = AutoSpQuery(sql, types); double runTime; return(ObjectConvert.DataReaderToList <T>(reader, out runTime)); }
/// <summary> /// 指定替换对象查询,并返回对象列表 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="types"></param> /// <returns></returns> public List <T> ExecList <T>(string sql, params Type[] types) where T : class, new() { sql = _DBAdapter.SqlFormat(sql); var reader = GetDataReader(sql, types); return(ObjectConvert.DataReaderToList <T>(reader)); }
public List <T> GetData <T>(out int outParame, ParameCollection fieldMapping = null) where T : class, new() { var data = ObjectConvert.DataReaderToList <T>(reader, false, fieldMapping); reader.Close(); outParame = handler(); return(data); }
public List <T> GetData <T>(out int outParame) where T : class, new() { var data = ObjectConvert.DataReaderToList <T>(reader, out runTime, false); reader.Close(); outParame = handler(); return(data); }
/// <summary> /// 执行存储过程返回结果集 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sp"></param> /// <returns></returns> public List <T> RunList <T>(string sp) where T : class, new() { var reader = dbHelper.RunDataReader(sp); ClearParame(); double runTime; return(ObjectConvert.DataReaderToList <T>(reader, out runTime)); }
/// <summary> /// 返回指定类型 /// </summary> /// <typeparam name="TModel"></typeparam> /// <typeparam name="TResult"></typeparam> /// <param name="query"></param> /// <returns></returns> public List <TResult> QueryDynamic <TModel, TResult>(LambdaQuery <TModel> query) where TModel : IModel, new() where TResult : class, new() { var reader = GetQueryDynamicReader(query); double runTime; var list = ObjectConvert.DataReaderToList <TResult>(reader, out runTime, false); query.MapingTime += runTime; query.RowCount = list.Count; return(list); }
/// <summary> /// 使用完整的LamadaQuery查询 /// </summary> /// <typeparam name="TItem"></typeparam> /// <param name="query"></param> /// <param name="cacheTime"></param> /// <param name="cacheKey">过期时间,分</param> /// <param name="compileSp">是否编译成储过程</param> /// <returns></returns> public List <TItem> QueryList <TItem>(LambdaQuery <TItem> query, int cacheTime, out string cacheKey, bool compileSp = false) where TItem : IModel, new() { CheckTableCreated <TItem>(); if (query.PageSize > 0)//按分页 { cacheKey = ""; int count; return(AutoSpPage(query, out count)); } string sql = ""; bool setConstraintObj = true; cacheKey = ""; //foreach (var n in query.QueryParames) //{ // AddParam(n.Key, n.Value); //} query.FillParames(this); sql = query.GetQuery(); sql = _DBAdapter.SqlFormat(sql); //DataTable dt; System.Data.Common.DbDataReader reader; List <TItem> list; if (cacheTime <= 0) { if (!compileSp) { if (query.QueryTop > 0) { helper.AutoFormatWithNolock = false; } reader = helper.ExecDataReader(sql); } else//生成储过程 { string sp = CompileSqlToSp(_DBAdapter.TemplateSp, sql); reader = helper.RunDataReader(sql); } list = ObjectConvert.DataReaderToList <TItem>(reader, setConstraintObj, query.FieldMapping); } else { list = MemoryDataCache.GetCacheList <TItem>(sql, cacheTime, helper, out cacheKey).Values.ToList(); } ClearParame(); query.RowCount = list.Count; SetOriginClone(list); return(list); }
/// <summary> /// 使用完整的LamadaQuery查询 /// </summary> /// <typeparam name="TItem"></typeparam> /// <param name="query"></param> /// <param name="cacheKey">cacheKey</param> /// <returns></returns> public List <TItem> QueryList <TItem>(LambdaQuery <TItem> query, out string cacheKey) where TItem : IModel, new() { CheckTableCreated <TItem>(); if (query.__PageSize > 0)//按分页 { cacheKey = ""; return(Page <TItem, TItem>(query)); } string sql = ""; cacheKey = ""; query.FillParames(this); sql = query.GetQuery(); sql = _DBAdapter.SqlFormat(sql); System.Data.Common.DbDataReader reader; var cacheTime = query.__ExpireMinute; var compileSp = query.__CompileSp; List <TItem> list; double runTime; if (cacheTime <= 0) { if (!compileSp) { if (query.__QueryTop > 0) { dbHelper.AutoFormatWithNolock = false; } reader = dbHelper.ExecDataReader(sql); } else//生成储过程 { string sp = CompileSqlToSp(_DBAdapter.TemplateSp, sql); reader = dbHelper.RunDataReader(sql); } query.ExecuteTime += dbHelper.ExecuteTime; list = ObjectConvert.DataReaderToList <TItem>(reader, out runTime, true); query.MapingTime += runTime; } else { list = MemoryDataCache.CacheService.GetCacheList <TItem>(sql, cacheTime, dbHelper, out cacheKey).Values.ToList(); } ClearParame(); query.RowCount = list.Count; SetOriginClone(list); 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); } var list = ObjectConvert.DataReaderToList <object>(reader, type, 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); }