Exemplo n.º 1
0
        private List <T> query <T>(Query query, RowReaderCallback <T> callback, bool firstOnly = false)
        {
            List <T> result = new List <T>();

            using (var sql = connect()) {
                using (var cmd = new SqlCommand(useDatabase(query.build()), sql)) {
                    foreach (var a in query.arguments)
                    {
                        if (a.Value != null)
                        {
                            cmd.Parameters.AddWithValue(a.Key, a.Value);
                        }
                    }

                    sql.Open();
                    using (var dr = cmd.ExecuteReader()) {
                        var reader = new RowReader(dr);
                        while (dr.Read())
                        {
                            result.Add(callback(reader));
                            if (firstOnly)
                            {
                                break;
                            }
                        }
                    }
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns the first matched row according to provided query,
        /// invoking the callback, which is required to return the desired object.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="query"></param>
        /// <param name="callback"></param>
        /// <returns></returns>
        public T getFirst <T>(Query query, RowReaderCallback <T> callback)
        {
            var r = query <T>(query, callback, true);

            if (r.Count == 0)
            {
                return(default(T));
            }
            else
            {
                return(r[0]);
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Returns all matched rows according to provided query,
 /// invoking the callback each row, which is required to return the desired object.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="query"></param>
 /// <param name="callback"></param>
 /// <returns></returns>
 public List <T> query <T>(Query query, RowReaderCallback <T> callback)
 {
     return(query <T>(query, callback, false));
 }
Exemplo n.º 4
0
 /// <summary>
 /// Returns the first matched row according to provided query,
 /// invoking the callback, which is required to return the desired object.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="query"></param>
 /// <param name="callback"></param>
 /// <returns></returns>
 public Model getFirst(Query query, RowReaderCallback <Model> callback)
 {
     return(getFirst <Model>(query, callback));
 }