/// <summary>
 ///
 /// </summary>
 /// <param name="sql"></param>
 /// <param name="parameterCollection"></param>
 /// <param name="incrementEntity"></param>
 /// <returns></returns>
 protected int DoExecuteByDbWriter(string sql, ParameterCollection parameterCollection, IDictionary <string, T> incrementEntity)
 {
     if (string.IsNullOrEmpty(sql))
     {
         return(0);
     }
     if (incrementEntity == null || incrementEntity.Count == 0)
     {
         return(DbWriter.ExecuteNonQuery(sql, parameterCollection));
     }
     using (var reader = DbWriter.ExecuteReader(sql, parameterCollection))
     {
         ReceiveIncrement(incrementEntity, reader);
         return(reader.RecordsAffected);
     }
 }