/// <summary>
        /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <int> InsertAsync(CommentPKEntity entity)
        {
            if (entity.PKID <= 0)
            {
                entity.PKID = GetNewID();
            }
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);

            string strSQL = "insert into CommentPK (" +
                            "PKID," +
                            "CommentID," +
                            "Title," +
                            "Content," +
                            "IP," +
                            "UpdateTime," +
                            "UserName," +
                            "Position) " +
                            "values(" +
                            "@PKID," +
                            "@CommentID," +
                            "@Title," +
                            "@Content," +
                            "@IP," +
                            "@UpdateTime," +
                            "@UserName," +
                            "@Position)";

            if (await Task.Run(() => _DB.ExeSQLResult(strSQL, dict)))
            {
                return(DataConverter.CLng(entity.PKID));
            }
            return(-1);
        }
        /// <summary>
        /// 增加一条记录
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual bool Add(CommentPKEntity entity)
        {
            if (entity.PKID <= 0)
            {
                entity.PKID = GetNewID();
            }
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);

            string strSQL = "insert into CommentPK (" +
                            "PKID," +
                            "CommentID," +
                            "Title," +
                            "Content," +
                            "IP," +
                            "UpdateTime," +
                            "UserName," +
                            "Position) " +
                            "values(" +
                            "@PKID," +
                            "@CommentID," +
                            "@Title," +
                            "@Content," +
                            "@IP," +
                            "@UpdateTime," +
                            "@UserName," +
                            "@Position)";

            return(_DB.ExeSQLResult(strSQL, dict));
        }
 /// <summary>
 /// 把实体类转换成键/值对集合
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="dict"></param>
 private static void GetParameters(CommentPKEntity entity, Dictionary <string, object> dict)
 {
     dict.Add("PKID", entity.PKID);
     dict.Add("CommentID", entity.CommentID);
     dict.Add("Title", entity.Title);
     dict.Add("Content", entity.Content);
     dict.Add("IP", entity.IP);
     dict.Add("UpdateTime", entity.UpdateTime);
     dict.Add("UserName", entity.UserName);
     dict.Add("Position", entity.Position);
 }
        /// <summary>
        /// 通过数据读取器生成实体类
        /// </summary>
        /// <param name="rdr"></param>
        /// <returns></returns>
        private static CommentPKEntity GetEntityFromrdr(NullableDataReader rdr)
        {
            CommentPKEntity info = new CommentPKEntity();

            info.PKID       = rdr.GetInt32("PKID");
            info.CommentID  = rdr.GetInt32("CommentID");
            info.Title      = rdr.GetString("Title");
            info.Content    = rdr.GetString("Content");
            info.IP         = rdr.GetString("IP");
            info.UpdateTime = rdr.GetNullableDateTime("UpdateTime");
            info.UserName   = rdr.GetString("UserName");
            info.Position   = rdr.GetInt32("Position");
            return(info);
        }
        /// <summary>
        /// 获取实体(异步方式)
        /// </summary>
        /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param>
        /// <param name="dict">参数的名/值集合</param>
        /// <returns></returns>
        public virtual async Task <CommentPKEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null)
        {
            CommentPKEntity obj    = null;
            string          strSQL = "select top 1 * from CommentPK 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(CommentPKEntity entity)
        {
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);
            string strSQL = "Update CommentPK SET " +
                            "CommentID = @CommentID," +
                            "Title = @Title," +
                            "Content = @Content," +
                            "IP = @IP," +
                            "UpdateTime = @UpdateTime," +
                            "UserName = @UserName," +
                            "Position = @Position" +
                            " WHERE " +

                            "PKID = @PKID";

            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(CommentPKEntity 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(CommentPKEntity entity, bool IsSave)
 {
     return(IsSave ? Add(entity) : Update(entity));
 }