public Tuple <IEnumerable <T1>, IEnumerable <T2>, IEnumerable <T3> > QueryWithMultiOutput <T1, T2, T3>(string query, Dictionary <string, SqlParam> parameters = null) { Dapper.SqlMapper.GridReader reader = null; var _connection = Context.Connection; if (parameters == null) { using (var result = _connection.QueryMultiple(query, null, null, null, CommandType.StoredProcedure)) { reader = result; var data1 = reader.Read <T1>().ToList(); var data2 = reader.Read <T2>().ToList(); var data3 = reader.Read <T3>().ToList(); _connection.Close(); return(new Tuple <IEnumerable <T1>, IEnumerable <T2>, IEnumerable <T3> >(data1, data2, data3)); } } else { var ps = new SqlDynamicParameters(); foreach (var p in parameters) { ps.Add(p.Key, p.Value.Value, p.Value.SqlType, p.Value.Direction); } using (var result = _connection.QueryMultiple(query, ps, null, 1000000, CommandType.StoredProcedure)) { var data1 = result.Read <T1>().ToList(); var data2 = result.Read <T2>().ToList(); var data3 = result.Read <T3>().ToList(); _connection.Close(); return(new Tuple <IEnumerable <T1>, IEnumerable <T2>, IEnumerable <T3> >(data1, data2, data3)); } } }
public int ExecuteNonQuery(string query, Dictionary <string, SqlParam> parameters = null) { int result; SqlDynamicParameters ps = null; if (parameters != null && parameters.Any()) { ps = new SqlDynamicParameters(); foreach (var p in parameters) { ps.Add(p.Key, p.Value.Value, p.Value.SqlType, p.Value.Direction); } } var _connection = Context.Connection; result = _connection.Execute(query, ps, null, null, CommandType.StoredProcedure); _connection.Close(); return(result); }