/// <summary> /// Query method can execute a query and map the result to a strongly typed list with a one to many relations or none to one relations. /// </summary> /// <typeparam name="TFirst"></typeparam> /// <typeparam name="TSecond"></typeparam> /// <typeparam name="TReturn"></typeparam> /// <param name="sql"></param> /// <param name="map"></param> /// <param name="param"></param> /// <param name="buffered"></param> /// <param name="splitOn"></param> /// <param name="commandType"></param> /// <param name="dapperModel"></param> /// <returns></returns> /// <exception cref="Exception"/> /// <example> /// <code> /// (One to One) /// var invoices = connection.Query<Invoice, InvoiceDetail, Invoice>( /// sql, /// (invoice, invoiceDetail) => /// { /// invoice.InvoiceDetail = invoiceDetail; /// return invoice; /// }, /// splitOn: "InvoiceID") /// .Distinct() /// .ToList(); /// /// (One to Many) /// var orderDictionary = new Dictionary<int, Order>(); /// /// var list = connection.Query<Order, OrderDetail, Order>( /// sql, /// (order, orderDetail) => /// { /// Order orderEntry; /// /// if (!orderDictionary.TryGetValue(order.OrderID, out orderEntry)) /// { /// orderEntry = order; /// orderEntry.OrderDetails = new List<OrderDetail>(); /// orderDictionary.Add(orderEntry.OrderID, orderEntry); /// } /// /// orderEntry.OrderDetails.Add(orderDetail); /// return orderEntry; /// }, /// splitOn: "OrderDetailID") /// .Distinct() /// .ToList(); /// </code> /// </example> public IEnumerable <TReturn> Query <TFirst, TSecond, TReturn>(DapperModel dapperModel, string sql, Func <TFirst, TSecond, TReturn> map, object param = null, string splitOn = null) { IEnumerable <TReturn> result = null; try { result = dapperModel.Query <TFirst, TSecond, TReturn>(sql, map, param, splitOn); } catch (Exception ex) { throw ex; } return(result); }
/// <summary> /// Execute Select statement and return <see langword="T"/> object mapping the column table with <see langword="T"/> object properties. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Connection"></param> /// <param name="sql"></param> /// <param name="param"></param> /// <returns></returns> /// <exception cref="Exception"></exception> public IEnumerable <T> Query <T>(SqlConnection Connection, string sql, object param = null) { IEnumerable <T> result = null; try { result = DapperModel.Query <T>(Connection, sql, param); } catch (Exception ex) { throw ex; } return(result); }
/// <summary> /// Execute statement select on DB and return anonymous result /// </summary> /// <param name="sql"></param> /// <param name="param"></param> /// <returns></returns> /// <exception cref="Exception"></exception> public IEnumerable <dynamic> Query(DapperModel dapperModel, string sql, object param = null) { IEnumerable <dynamic> result = null; try { result = dapperModel.Query(sql, param); } catch (Exception ex) { throw ex; } return(result); }