/// <summary>
        /// 通过数据读取器生成实体类
        /// </summary>
        /// <param name="rdr"></param>
        /// <returns></returns>
        private static StatInfoListEntity GetEntityFromrdr(NullableDataReader rdr)
        {
            StatInfoListEntity info = new StatInfoListEntity();

            info.ID             = rdr.GetInt32("ID");
            info.StartDate      = rdr.GetString("StartDate");
            info.TotalNum       = rdr.GetInt32("TotalNum");
            info.TotalView      = rdr.GetInt32("TotalView");
            info.MonthNum       = rdr.GetInt32("MonthNum");
            info.MonthMaxNum    = rdr.GetInt32("MonthMaxNum");
            info.OldMonth       = rdr.GetString("OldMonth");
            info.MonthMaxDate   = rdr.GetString("MonthMaxDate");
            info.DayNum         = rdr.GetInt32("DayNum");
            info.DayMaxNum      = rdr.GetInt32("DayMaxNum");
            info.OldDay         = rdr.GetString("OldDay");
            info.DayMaxDate     = rdr.GetString("DayMaxDate");
            info.HourNum        = rdr.GetInt32("HourNum");
            info.HourMaxNum     = rdr.GetInt32("HourMaxNum");
            info.OldHour        = rdr.GetString("OldHour");
            info.HourMaxTime    = rdr.GetString("HourMaxTime");
            info.ChinaNum       = rdr.GetInt32("ChinaNum");
            info.OtherNum       = rdr.GetInt32("OtherNum");
            info.MasterTimeZone = rdr.GetInt32("MasterTimeZone");
            info.Interval       = rdr.GetInt32("Interval");
            info.IntervalNum    = rdr.GetInt32("IntervalNum");
            info.OnlineTime     = rdr.GetInt32("OnlineTime");
            info.VisitRecord    = rdr.GetInt32("VisitRecord");
            info.KillRefresh    = rdr.GetInt32("KillRefresh");
            info.RegFields_Fill = rdr.GetString("RegFields_Fill");
            info.OldTotalNum    = rdr.GetInt32("OldTotalNum");
            info.OldTotalView   = rdr.GetInt32("OldTotalView");
            return(info);
        }
 /// <summary>
 /// 把实体类转换成键/值对集合
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="dict"></param>
 private static void GetParameters(StatInfoListEntity entity, Dictionary <string, object> dict)
 {
     dict.Add("ID", entity.ID);
     dict.Add("StartDate", entity.StartDate);
     dict.Add("TotalNum", entity.TotalNum);
     dict.Add("TotalView", entity.TotalView);
     dict.Add("MonthNum", entity.MonthNum);
     dict.Add("MonthMaxNum", entity.MonthMaxNum);
     dict.Add("OldMonth", entity.OldMonth);
     dict.Add("MonthMaxDate", entity.MonthMaxDate);
     dict.Add("DayNum", entity.DayNum);
     dict.Add("DayMaxNum", entity.DayMaxNum);
     dict.Add("OldDay", entity.OldDay);
     dict.Add("DayMaxDate", entity.DayMaxDate);
     dict.Add("HourNum", entity.HourNum);
     dict.Add("HourMaxNum", entity.HourMaxNum);
     dict.Add("OldHour", entity.OldHour);
     dict.Add("HourMaxTime", entity.HourMaxTime);
     dict.Add("ChinaNum", entity.ChinaNum);
     dict.Add("OtherNum", entity.OtherNum);
     dict.Add("MasterTimeZone", entity.MasterTimeZone);
     dict.Add("Interval", entity.Interval);
     dict.Add("IntervalNum", entity.IntervalNum);
     dict.Add("OnlineTime", entity.OnlineTime);
     dict.Add("VisitRecord", entity.VisitRecord);
     dict.Add("KillRefresh", entity.KillRefresh);
     dict.Add("RegFields_Fill", entity.RegFields_Fill);
     dict.Add("OldTotalNum", entity.OldTotalNum);
     dict.Add("OldTotalView", entity.OldTotalView);
 }
        /// <summary>
        /// 获取实体(异步方式)
        /// </summary>
        /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param>
        /// <param name="dict">参数的名/值集合</param>
        /// <returns></returns>
        public virtual async Task <StatInfoListEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null)
        {
            StatInfoListEntity obj    = null;
            string             strSQL = "select top 1 * from StatInfoList where 1=1 " + strWhere;

            using (NullableDataReader reader = await Task.Run(() => _DB.GetDataReader(strSQL, dict)))
            {
                if (reader.Read())
                {
                    obj = GetEntityFromrdr(reader);
                }
            }
            return(obj);
        }
        /// <summary>
        /// 更新一条记录(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <bool> UpdateAsync(StatInfoListEntity entity)
        {
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);
            string strSQL = "Update StatInfoList SET " +
                            "StartDate = @StartDate," +
                            "TotalNum = @TotalNum," +
                            "TotalView = @TotalView," +
                            "MonthNum = @MonthNum," +
                            "MonthMaxNum = @MonthMaxNum," +
                            "OldMonth = @OldMonth," +
                            "MonthMaxDate = @MonthMaxDate," +
                            "DayNum = @DayNum," +
                            "DayMaxNum = @DayMaxNum," +
                            "OldDay = @OldDay," +
                            "DayMaxDate = @DayMaxDate," +
                            "HourNum = @HourNum," +
                            "HourMaxNum = @HourMaxNum," +
                            "OldHour = @OldHour," +
                            "HourMaxTime = @HourMaxTime," +
                            "ChinaNum = @ChinaNum," +
                            "OtherNum = @OtherNum," +
                            "MasterTimeZone = @MasterTimeZone," +
                            "Interval = @Interval," +
                            "IntervalNum = @IntervalNum," +
                            "OnlineTime = @OnlineTime," +
                            "VisitRecord = @VisitRecord," +
                            "KillRefresh = @KillRefresh," +
                            "RegFields_Fill = @RegFields_Fill," +
                            "OldTotalNum = @OldTotalNum," +
                            "OldTotalView = @OldTotalView" +
                            " WHERE " +

                            "ID = @ID";

            return(await Task.Run(() => _DB.ExeSQLResult(strSQL, dict)));
        }
 /// <summary>
 /// 增加或更新一条记录(异步方式)
 /// </summary>
 /// <param name="entity">实体模型</param>
 /// <param name="IsSave">是否增加</param>
 /// <returns></returns>
 public virtual async Task <bool> AddOrUpdateAsync(StatInfoListEntity entity, bool IsSave)
 {
     return(IsSave ? await AddAsync(entity) : await UpdateAsync(entity));
 }
 /// <summary>
 /// 增加或更新一条记录
 /// </summary>
 /// <param name="entity">实体模型</param>
 /// <param name="IsSave">是否增加</param>
 /// <returns></returns>
 public virtual bool AddOrUpdate(StatInfoListEntity entity, bool IsSave)
 {
     return(IsSave ? Add(entity) : Update(entity));
 }
        /// <summary>
        /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <int> InsertAsync(StatInfoListEntity entity)
        {
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);

            string strSQL = "insert into StatInfoList (" +
                            "StartDate," +
                            "TotalNum," +
                            "TotalView," +
                            "MonthNum," +
                            "MonthMaxNum," +
                            "OldMonth," +
                            "MonthMaxDate," +
                            "DayNum," +
                            "DayMaxNum," +
                            "OldDay," +
                            "DayMaxDate," +
                            "HourNum," +
                            "HourMaxNum," +
                            "OldHour," +
                            "HourMaxTime," +
                            "ChinaNum," +
                            "OtherNum," +
                            "MasterTimeZone," +
                            "Interval," +
                            "IntervalNum," +
                            "OnlineTime," +
                            "VisitRecord," +
                            "KillRefresh," +
                            "RegFields_Fill," +
                            "OldTotalNum," +
                            "OldTotalView) " +
                            "values(" +
                            "@StartDate," +
                            "@TotalNum," +
                            "@TotalView," +
                            "@MonthNum," +
                            "@MonthMaxNum," +
                            "@OldMonth," +
                            "@MonthMaxDate," +
                            "@DayNum," +
                            "@DayMaxNum," +
                            "@OldDay," +
                            "@DayMaxDate," +
                            "@HourNum," +
                            "@HourMaxNum," +
                            "@OldHour," +
                            "@HourMaxTime," +
                            "@ChinaNum," +
                            "@OtherNum," +
                            "@MasterTimeZone," +
                            "@Interval," +
                            "@IntervalNum," +
                            "@OnlineTime," +
                            "@VisitRecord," +
                            "@KillRefresh," +
                            "@RegFields_Fill," +
                            "@OldTotalNum," +
                            "@OldTotalView)";

            return(await Task.Run(() => _DB.ReturnID(strSQL, dict)));
        }