/// <summary>
        /// 更新一条记录(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <bool> UpdateAsync(InvoiceLogEntity entity)
        {
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);
            string strSQL = "Update InvoiceLog SET " +
                            "ClientID = @ClientID," +
                            "UserName = @UserName," +
                            "OrderID = @OrderID," +
                            "InvoiceType = @InvoiceType," +
                            "InvoiceNum = @InvoiceNum," +
                            "InvoiceTitle = @InvoiceTitle," +
                            "InvoiceContent = @InvoiceContent," +
                            "InvoiceDate = @InvoiceDate," +
                            "TotalMoney = @TotalMoney," +
                            "Drawer = @Drawer," +
                            "Inputer = @Inputer," +
                            "InputTime = @InputTime," +
                            "Memo = @Memo" +
                            " WHERE " +

                            "InvoiceID = @InvoiceID";

            return(await Task.Run(() => _DB.ExeSQLResult(strSQL, dict)));
        }
        /// <summary>
        /// 获取实体(异步方式)
        /// </summary>
        /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param>
        /// <param name="dict">参数的名/值集合</param>
        /// <returns></returns>
        public virtual async Task <InvoiceLogEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null)
        {
            InvoiceLogEntity obj    = null;
            string           strSQL = "select top 1 * from InvoiceLog 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>
 /// <param name="dict"></param>
 private static void GetParameters(InvoiceLogEntity entity, Dictionary <string, object> dict)
 {
     dict.Add("InvoiceID", entity.InvoiceID);
     dict.Add("ClientID", entity.ClientID);
     dict.Add("UserName", entity.UserName);
     dict.Add("OrderID", entity.OrderID);
     dict.Add("InvoiceType", entity.InvoiceType);
     dict.Add("InvoiceNum", entity.InvoiceNum);
     dict.Add("InvoiceTitle", entity.InvoiceTitle);
     dict.Add("InvoiceContent", entity.InvoiceContent);
     dict.Add("InvoiceDate", entity.InvoiceDate);
     dict.Add("TotalMoney", entity.TotalMoney);
     dict.Add("Drawer", entity.Drawer);
     dict.Add("Inputer", entity.Inputer);
     dict.Add("InputTime", entity.InputTime);
     dict.Add("Memo", entity.Memo);
 }
        /// <summary>
        /// 通过数据读取器生成实体类
        /// </summary>
        /// <param name="rdr"></param>
        /// <returns></returns>
        private static InvoiceLogEntity GetEntityFromrdr(NullableDataReader rdr)
        {
            InvoiceLogEntity info = new InvoiceLogEntity();

            info.InvoiceID      = rdr.GetInt32("InvoiceID");
            info.ClientID       = rdr.GetInt32("ClientID");
            info.UserName       = rdr.GetString("UserName");
            info.OrderID        = rdr.GetInt32("OrderID");
            info.InvoiceType    = rdr.GetInt32("InvoiceType");
            info.InvoiceNum     = rdr.GetString("InvoiceNum");
            info.InvoiceTitle   = rdr.GetString("InvoiceTitle");
            info.InvoiceContent = rdr.GetString("InvoiceContent");
            info.InvoiceDate    = rdr.GetNullableDateTime("InvoiceDate");
            info.TotalMoney     = rdr.GetDecimal("TotalMoney");
            info.Drawer         = rdr.GetString("Drawer");
            info.Inputer        = rdr.GetString("Inputer");
            info.InputTime      = rdr.GetNullableDateTime("InputTime");
            info.Memo           = rdr.GetString("Memo");
            return(info);
        }
        /// <summary>
        /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <int> InsertAsync(InvoiceLogEntity entity)
        {
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);

            string strSQL = "insert into InvoiceLog (" +
                            "ClientID," +
                            "UserName," +
                            "OrderID," +
                            "InvoiceType," +
                            "InvoiceNum," +
                            "InvoiceTitle," +
                            "InvoiceContent," +
                            "InvoiceDate," +
                            "TotalMoney," +
                            "Drawer," +
                            "Inputer," +
                            "InputTime," +
                            "Memo) " +
                            "values(" +
                            "@ClientID," +
                            "@UserName," +
                            "@OrderID," +
                            "@InvoiceType," +
                            "@InvoiceNum," +
                            "@InvoiceTitle," +
                            "@InvoiceContent," +
                            "@InvoiceDate," +
                            "@TotalMoney," +
                            "@Drawer," +
                            "@Inputer," +
                            "@InputTime," +
                            "@Memo)";

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

            GetParameters(entity, dict);

            string strSQL = "insert into InvoiceLog (" +
                            "ClientID," +
                            "UserName," +
                            "OrderID," +
                            "InvoiceType," +
                            "InvoiceNum," +
                            "InvoiceTitle," +
                            "InvoiceContent," +
                            "InvoiceDate," +
                            "TotalMoney," +
                            "Drawer," +
                            "Inputer," +
                            "InputTime," +
                            "Memo) " +
                            "values(" +
                            "@ClientID," +
                            "@UserName," +
                            "@OrderID," +
                            "@InvoiceType," +
                            "@InvoiceNum," +
                            "@InvoiceTitle," +
                            "@InvoiceContent," +
                            "@InvoiceDate," +
                            "@TotalMoney," +
                            "@Drawer," +
                            "@Inputer," +
                            "@InputTime," +
                            "@Memo)";

            return(_DB.ExeSQLResult(strSQL, dict));
        }
 /// <summary>
 /// 增加或更新一条记录(异步方式)
 /// </summary>
 /// <param name="entity">实体模型</param>
 /// <param name="IsSave">是否增加</param>
 /// <returns></returns>
 public virtual async Task <bool> AddOrUpdateAsync(InvoiceLogEntity 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(InvoiceLogEntity entity, bool IsSave)
 {
     return(IsSave ? Add(entity) : Update(entity));
 }