Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        /// <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);
        }