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

            GetParameters(entity, dict);

            string strSQL = "insert into HirePurchase (" +
                            "NodeID," +
                            "ProductID," +
                            "DownPayment," +
                            "DownPaymentMax," +
                            "YearRate," +
                            "Fee," +
                            "MerchantRebate," +
                            "Deadline," +
                            "MinLoanMoney," +
                            "MaxLoanMoney) " +
                            "values(" +
                            "@NodeID," +
                            "@ProductID," +
                            "@DownPayment," +
                            "@DownPaymentMax," +
                            "@YearRate," +
                            "@Fee," +
                            "@MerchantRebate," +
                            "@Deadline," +
                            "@MinLoanMoney," +
                            "@MaxLoanMoney)";

            return(await Task.Run(() => _DB.ReturnID(strSQL, dict)));
        }
        /// <summary>
        /// 增加一条记录
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual bool Add(HirePurchaseEntity entity)
        {
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);

            string strSQL = "insert into HirePurchase (" +
                            "NodeID," +
                            "ProductID," +
                            "DownPayment," +
                            "DownPaymentMax," +
                            "YearRate," +
                            "Fee," +
                            "MerchantRebate," +
                            "Deadline," +
                            "MinLoanMoney," +
                            "MaxLoanMoney) " +
                            "values(" +
                            "@NodeID," +
                            "@ProductID," +
                            "@DownPayment," +
                            "@DownPaymentMax," +
                            "@YearRate," +
                            "@Fee," +
                            "@MerchantRebate," +
                            "@Deadline," +
                            "@MinLoanMoney," +
                            "@MaxLoanMoney)";

            return(_DB.ExeSQLResult(strSQL, dict));
        }
 /// <summary>
 /// 把实体类转换成键/值对集合
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="dict"></param>
 private static void GetParameters(HirePurchaseEntity entity, Dictionary <string, object> dict)
 {
     dict.Add("ID", entity.ID);
     dict.Add("NodeID", entity.NodeID);
     dict.Add("ProductID", entity.ProductID);
     dict.Add("DownPayment", entity.DownPayment);
     dict.Add("DownPaymentMax", entity.DownPaymentMax);
     dict.Add("YearRate", entity.YearRate);
     dict.Add("Fee", entity.Fee);
     dict.Add("MerchantRebate", entity.MerchantRebate);
     dict.Add("Deadline", entity.Deadline);
     dict.Add("MinLoanMoney", entity.MinLoanMoney);
     dict.Add("MaxLoanMoney", entity.MaxLoanMoney);
 }
        /// <summary>
        /// 获取实体(异步方式)
        /// </summary>
        /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param>
        /// <param name="dict">参数的名/值集合</param>
        /// <returns></returns>
        public virtual async Task <HirePurchaseEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null)
        {
            HirePurchaseEntity obj    = null;
            string             strSQL = "select top 1 * from HirePurchase 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="rdr"></param>
        /// <returns></returns>
        private static HirePurchaseEntity GetEntityFromrdr(NullableDataReader rdr)
        {
            HirePurchaseEntity info = new HirePurchaseEntity();

            info.ID             = rdr.GetInt32("ID");
            info.NodeID         = rdr.GetInt32("NodeID");
            info.ProductID      = rdr.GetInt32("ProductID");
            info.DownPayment    = rdr.GetDecimal("DownPayment");
            info.DownPaymentMax = rdr.GetDecimal("DownPaymentMax");
            info.YearRate       = rdr.GetDecimal("YearRate");
            info.Fee            = rdr.GetDecimal("Fee");
            info.MerchantRebate = rdr.GetDecimal("MerchantRebate");
            info.Deadline       = rdr.GetInt32("Deadline");
            info.MinLoanMoney   = rdr.GetDecimal("MinLoanMoney");
            info.MaxLoanMoney   = rdr.GetDecimal("MaxLoanMoney");
            return(info);
        }
        /// <summary>
        /// 更新一条记录(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <bool> UpdateAsync(HirePurchaseEntity entity)
        {
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);
            string strSQL = "Update HirePurchase SET " +
                            "NodeID = @NodeID," +
                            "ProductID = @ProductID," +
                            "DownPayment = @DownPayment," +
                            "DownPaymentMax = @DownPaymentMax," +
                            "YearRate = @YearRate," +
                            "Fee = @Fee," +
                            "MerchantRebate = @MerchantRebate," +
                            "Deadline = @Deadline," +
                            "MinLoanMoney = @MinLoanMoney," +
                            "MaxLoanMoney = @MaxLoanMoney" +
                            " 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(HirePurchaseEntity 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(HirePurchaseEntity entity, bool IsSave)
 {
     return(IsSave ? Add(entity) : Update(entity));
 }