/// <summary> /// 全部查询 /// </summary> /// <typeparam name="T">查询的实体类型</typeparam> /// <returns></returns> public List <T> SelectAllGenericCacheDBDelegate <T>() where T : BaseModel { Type type = typeof(T); string sqlStr = GenericCacheSelectAllDB <T> .GetSelectAllSqlStr(); List <T> Ts = new List <T>(); Func <SqlCommand, List <T> > func = comm => { SqlDataReader reader = comm.ExecuteReader(); //SqlDataReader reader = ExexuteSql(sqlStr, SeletFunc); while (reader.Read()) { object o = Activator.CreateInstance(type); foreach (var pro in GetTypeProGenericCache <T> .GetTypeProInfos())//缓存 { if (pro.IsDefined(typeof(DBNameAttribute), true)) { DBNameAttribute dBNameAttribute = (DBNameAttribute)pro.GetCustomAttribute(typeof(DBNameAttribute)); pro.SetValue(o, reader[dBNameAttribute.Name]); } else { pro.SetValue(o, reader[pro.Name]); } } T t = (T)o; Ts.Add(t); } return(Ts); }; return(this.ExexuteSql(sqlStr, func)); //return Ts; }
/// <summary> /// 全部查询 /// </summary> /// <typeparam name="T">查询的实体类型</typeparam> /// <returns></returns> public List <T> SelectAllGenericCacheDB <T>() where T : BaseModel { Type type = typeof(T); //string proesStr = string.Join(",", type.GetProperties().Select(item => "[" + item.Name + "]")); //string sqlStr = " select " + proesStr + " from " + "[" + type.Name + "]"; string sqlStr = GenericCacheSelectAllDB <T> .GetSelectAllSqlStr(); List <T> Ts = new List <T>(); using (SqlConnection conn = new SqlConnection(ConnStrNetVipClsTweDB)) { SqlCommand comm = new SqlCommand(sqlStr, conn); conn.Open(); try { SqlDataReader reader = comm.ExecuteReader(); while (reader.Read()) { object o = Activator.CreateInstance(type); foreach (var pro in GetTypeProGenericCache <T> .GetTypeProInfos()) { if (pro.IsDefined(typeof(DBNameAttribute), true)) { DBNameAttribute dBNameAttribute = (DBNameAttribute)pro.GetCustomAttribute(typeof(DBNameAttribute)); pro.SetValue(o, reader[dBNameAttribute.Name]); } else { pro.SetValue(o, reader[pro.Name]); } } T t = (T)o; Ts.Add(t); } } catch (Exception e) { conn.Close(); throw e; } } return(Ts); }