public async Task <T> ConvertAsync(SqlServerAttribute input, CancellationToken cancellationToken) { var data = default(T); using (var connection = new SqlConnection(input.ConnectionString)) { var parameters = new DynamicParameters(new { }); input.SqlParameters.ForEach(param => parameters.Add(param.ParameterName, param.Value)); data = await connection.QuerySingleAsync <T>(new CommandDefinition(input.Query, parameters)).ConfigureAwait(false); } return(data); }
public async Task <IEnumerable <T> > ConvertAsync(SqlServerAttribute input, CancellationToken cancellationToken) { List <T> data = null; using (var connection = new SqlConnection(input.ConnectionString)) { var parameters = new DynamicParameters(new { }); input.SqlParameters.ForEach(param => parameters.Add(param.ParameterName, param.Value)); //TODO: Check: Either remove ToList since QueryAsync internally uses a list // or change CommandDefinition to be not buffered and yield return items. data = (await connection.QueryAsync <T>(new CommandDefinition(input.Query, parameters)).ConfigureAwait(false)).ToList(); } return(data ?? Enumerable.Empty <T>()); }