Skip to content

Adding .ConfigureAwait(false) to async library code #556

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions QueryBuilder/QueryBuilder.csproj
Original file line number Diff line number Diff line change
@@ -25,6 +25,10 @@

</PropertyGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="5.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.Collections.Concurrent" Version="4.3.0" />
</ItemGroup>
</Project>
4 changes: 2 additions & 2 deletions SqlKata.Execution/PaginationResult.cs
Original file line number Diff line number Diff line change
@@ -74,7 +74,7 @@ public PaginationResult<T> Next(IDbTransaction transaction = null, int? timeout

public async Task<PaginationResult<T>> NextAsync(IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await this.Query.PaginateAsync<T>(Page + 1, PerPage, transaction, timeout, cancellationToken);
return await this.Query.PaginateAsync<T>(Page + 1, PerPage, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public Query PreviousQuery()
@@ -89,7 +89,7 @@ public PaginationResult<T> Previous(IDbTransaction transaction = null, int? time

public async Task<PaginationResult<T>> PreviousAsync(IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await this.Query.PaginateAsync<T>(Page - 1, PerPage, transaction, timeout, cancellationToken);
return await this.Query.PaginateAsync<T>(Page - 1, PerPage, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public PaginationIterator<T> Each
62 changes: 31 additions & 31 deletions SqlKata.Execution/Query.Extensions.cs
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@ public static bool Exists(this Query query, IDbTransaction transaction = null, i

public async static Task<bool> ExistsAsync(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExistsAsync(query, transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExistsAsync(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static bool NotExist(this Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -25,7 +25,7 @@ public static bool NotExist(this Query query, IDbTransaction transaction = null,

public async static Task<bool> NotExistAsync(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return !(await CreateQueryFactory(query).ExistsAsync(query, transaction, timeout, cancellationToken));
return !(await CreateQueryFactory(query).ExistsAsync(query, transaction, timeout, cancellationToken).ConfigureAwait(false));
}

public static IEnumerable<T> Get<T>(this Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -35,7 +35,7 @@ public static IEnumerable<T> Get<T>(this Query query, IDbTransaction transaction

public static async Task<IEnumerable<T>> GetAsync<T>(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).GetAsync<T>(query, transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).GetAsync<T>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static IEnumerable<dynamic> Get(this Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -45,7 +45,7 @@ public static IEnumerable<dynamic> Get(this Query query, IDbTransaction transact

public static async Task<IEnumerable<dynamic>> GetAsync(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await GetAsync<dynamic>(query, transaction, timeout, cancellationToken);
return await GetAsync<dynamic>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T FirstOrDefault<T>(this Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -55,7 +55,7 @@ public static T FirstOrDefault<T>(this Query query, IDbTransaction transaction =

public static async Task<T> FirstOrDefaultAsync<T>(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).FirstOrDefaultAsync<T>(query, transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).FirstOrDefaultAsync<T>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static dynamic FirstOrDefault(this Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -65,7 +65,7 @@ public static dynamic FirstOrDefault(this Query query, IDbTransaction transactio

public static async Task<dynamic> FirstOrDefaultAsync(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await FirstOrDefaultAsync<dynamic>(query, transaction, timeout, cancellationToken);
return await FirstOrDefaultAsync<dynamic>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T First<T>(this Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -75,7 +75,7 @@ public static T First<T>(this Query query, IDbTransaction transaction = null, in

public static async Task<T> FirstAsync<T>(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).FirstAsync<T>(query, transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).FirstAsync<T>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static dynamic First(this Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -85,7 +85,7 @@ public static dynamic First(this Query query, IDbTransaction transaction = null,

public static async Task<dynamic> FirstAsync(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await FirstAsync<dynamic>(query, transaction, timeout, cancellationToken);
return await FirstAsync<dynamic>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static PaginationResult<T> Paginate<T>(this Query query, int page, int perPage = 25, IDbTransaction transaction = null, int? timeout = null)
@@ -99,7 +99,7 @@ public static async Task<PaginationResult<T>> PaginateAsync<T>(this Query query,
{
var db = CreateQueryFactory(query);

return await db.PaginateAsync<T>(query, page, perPage, transaction, timeout, cancellationToken);
return await db.PaginateAsync<T>(query, page, perPage, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static PaginationResult<dynamic> Paginate(this Query query, int page, int perPage = 25, IDbTransaction transaction = null, int? timeout = null)
@@ -109,7 +109,7 @@ public static PaginationResult<dynamic> Paginate(this Query query, int page, int

public static async Task<PaginationResult<dynamic>> PaginateAsync(this Query query, int page, int perPage = 25, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await PaginateAsync<dynamic>(query, page, perPage, transaction, timeout, cancellationToken);
return await PaginateAsync<dynamic>(query, page, perPage, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static void Chunk<T>(this Query query, int chunkSize, Func<IEnumerable<T>, int, bool> func, IDbTransaction transaction = null, int? timeout = null)
@@ -120,7 +120,7 @@ public static void Chunk<T>(this Query query, int chunkSize, Func<IEnumerable<T>
}
public static async Task ChunkAsync<T>(this Query query, int chunkSize, Func<IEnumerable<T>, int, bool> func, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
await CreateQueryFactory(query).ChunkAsync<T>(query, chunkSize, func, transaction, timeout, cancellationToken);
await CreateQueryFactory(query).ChunkAsync<T>(query, chunkSize, func, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static void Chunk(this Query query, int chunkSize, Func<IEnumerable<dynamic>, int, bool> func, IDbTransaction transaction = null, int? timeout = null)
@@ -129,7 +129,7 @@ public static void Chunk(this Query query, int chunkSize, Func<IEnumerable<dynam
}
public static async Task ChunkAsync(this Query query, int chunkSize, Func<IEnumerable<dynamic>, int, bool> func, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
await ChunkAsync<dynamic>(query, chunkSize, func, transaction, timeout, cancellationToken);
await ChunkAsync<dynamic>(query, chunkSize, func, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static void Chunk<T>(this Query query, int chunkSize, Action<IEnumerable<T>, int> action, IDbTransaction transaction = null, int? timeout = null)
@@ -141,7 +141,7 @@ public static void Chunk<T>(this Query query, int chunkSize, Action<IEnumerable<

public static async Task ChunkAsync<T>(this Query query, int chunkSize, Action<IEnumerable<T>, int> action, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
await CreateQueryFactory(query).ChunkAsync<T>(query, chunkSize, action, transaction, timeout, cancellationToken);
await CreateQueryFactory(query).ChunkAsync<T>(query, chunkSize, action, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static void Chunk(this Query query, int chunkSize, Action<IEnumerable<dynamic>, int> action, IDbTransaction transaction = null, int? timeout = null)
@@ -151,7 +151,7 @@ public static void Chunk(this Query query, int chunkSize, Action<IEnumerable<dyn

public static async Task ChunkAsync(this Query query, int chunkSize, Action<IEnumerable<dynamic>, int> action, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
await ChunkAsync<dynamic>(query, chunkSize, action, transaction, timeout, cancellationToken);
await ChunkAsync<dynamic>(query, chunkSize, action, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static int Insert(this Query query, IEnumerable<KeyValuePair<string, object>> values, IDbTransaction transaction = null, int? timeout = null)
@@ -161,7 +161,7 @@ public static int Insert(this Query query, IEnumerable<KeyValuePair<string, obje

public static async Task<int> InsertAsync(this Query query, IEnumerable<KeyValuePair<string, object>> values, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsInsert(values), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsInsert(values), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static int Insert(this Query query, IEnumerable<string> columns, IEnumerable<IEnumerable<object>> valuesCollection, IDbTransaction transaction = null, int? timeout = null)
@@ -171,7 +171,7 @@ public static int Insert(this Query query, IEnumerable<string> columns, IEnumera

public static async Task<int> InsertAsync(this Query query, IEnumerable<string> columns, IEnumerable<IEnumerable<object>> valuesCollection, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsInsert(columns, valuesCollection), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsInsert(columns, valuesCollection), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static int Insert(this Query query, IEnumerable<string> columns, Query fromQuery, IDbTransaction transaction = null, int? timeout = null)
@@ -181,7 +181,7 @@ public static int Insert(this Query query, IEnumerable<string> columns, Query fr

public static async Task<int> InsertAsync(this Query query, IEnumerable<string> columns, Query fromQuery, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsInsert(columns, fromQuery), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsInsert(columns, fromQuery), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static int Insert(this Query query, object data, IDbTransaction transaction = null, int? timeout = null)
@@ -191,7 +191,7 @@ public static int Insert(this Query query, object data, IDbTransaction transacti

public static async Task<int> InsertAsync(this Query query, object data, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsInsert(data), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsInsert(data), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T InsertGetId<T>(this Query query, object data, IDbTransaction transaction = null, int? timeout = null)
@@ -206,7 +206,7 @@ public static T InsertGetId<T>(this Query query, object data, IDbTransaction tra
public static async Task<T> InsertGetIdAsync<T>(this Query query, object data, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
var row = await CreateQueryFactory(query)
.FirstAsync<InsertGetIdRow<T>>(query.AsInsert(data, true), transaction, timeout, cancellationToken);
.FirstAsync<InsertGetIdRow<T>>(query.AsInsert(data, true), transaction, timeout, cancellationToken).ConfigureAwait(false);

return row.Id;
}
@@ -220,7 +220,7 @@ public static T InsertGetId<T>(this Query query, IEnumerable<KeyValuePair<string

public static async Task<T> InsertGetIdAsync<T>(this Query query, IEnumerable<KeyValuePair<string, object>> data, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
var row = await CreateQueryFactory(query).FirstAsync<InsertGetIdRow<T>>(query.AsInsert(data, true), transaction, timeout, cancellationToken);
var row = await CreateQueryFactory(query).FirstAsync<InsertGetIdRow<T>>(query.AsInsert(data, true), transaction, timeout, cancellationToken).ConfigureAwait(false);

return row.Id;
}
@@ -232,7 +232,7 @@ public static int Update(this Query query, IEnumerable<KeyValuePair<string, obje

public static async Task<int> UpdateAsync(this Query query, IEnumerable<KeyValuePair<string, object>> values, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsUpdate(values), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsUpdate(values), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static int Update(this Query query, object data, IDbTransaction transaction = null, int? timeout = null)
@@ -242,7 +242,7 @@ public static int Update(this Query query, object data, IDbTransaction transacti

public static async Task<int> UpdateAsync(this Query query, object data, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsUpdate(data), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsUpdate(data), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static int Increment(this Query query, string column, int value = 1, IDbTransaction transaction = null, int? timeout = null)
@@ -252,7 +252,7 @@ public static int Increment(this Query query, string column, int value = 1, IDbT

public static async Task<int> IncrementAsync(this Query query, string column, int value = 1, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsIncrement(column, value), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsIncrement(column, value), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static int Decrement(this Query query, string column, int value = 1, IDbTransaction transaction = null, int? timeout = null)
@@ -262,7 +262,7 @@ public static int Decrement(this Query query, string column, int value = 1, IDbT

public static async Task<int> DecrementAsync(this Query query, string column, int value = 1, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsDecrement(column, value), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsDecrement(column, value), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static int Delete(this Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -272,7 +272,7 @@ public static int Delete(this Query query, IDbTransaction transaction = null, in

public static async Task<int> DeleteAsync(this Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await CreateQueryFactory(query).ExecuteAsync(query.AsDelete(), transaction, timeout, cancellationToken);
return await CreateQueryFactory(query).ExecuteAsync(query.AsDelete(), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T Aggregate<T>(this Query query, string aggregateOperation, string[] columns, IDbTransaction transaction = null, int? timeout = null)
@@ -285,7 +285,7 @@ public static T Aggregate<T>(this Query query, string aggregateOperation, string
public static async Task<T> AggregateAsync<T>(this Query query, string aggregateOperation, string[] columns, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
var db = CreateQueryFactory(query);
return await db.ExecuteScalarAsync<T>(query.AsAggregate(aggregateOperation, columns), transaction, timeout, cancellationToken);
return await db.ExecuteScalarAsync<T>(query.AsAggregate(aggregateOperation, columns), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T Count<T>(this Query query, string[] columns = null, IDbTransaction transaction = null, int? timeout = null)
@@ -299,7 +299,7 @@ public static async Task<T> CountAsync<T>(this Query query, string[] columns = n
{
var db = CreateQueryFactory(query);

return await db.ExecuteScalarAsync<T>(query.AsCount(columns), transaction, timeout, cancellationToken);
return await db.ExecuteScalarAsync<T>(query.AsCount(columns), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T Average<T>(this Query query, string column, IDbTransaction transaction = null, int? timeout = null)
@@ -309,7 +309,7 @@ public static T Average<T>(this Query query, string column, IDbTransaction trans

public static async Task<T> AverageAsync<T>(this Query query, string column, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await query.AggregateAsync<T>("avg", new[] { column }, transaction, timeout, cancellationToken);
return await query.AggregateAsync<T>("avg", new[] { column }, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T Sum<T>(this Query query, string column, IDbTransaction transaction = null, int? timeout = null)
@@ -319,7 +319,7 @@ public static T Sum<T>(this Query query, string column, IDbTransaction transacti

public static async Task<T> SumAsync<T>(this Query query, string column, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await query.AggregateAsync<T>("sum", new[] { column }, transaction, timeout, cancellationToken);
return await query.AggregateAsync<T>("sum", new[] { column }, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T Min<T>(this Query query, string column, IDbTransaction transaction = null, int? timeout = null)
@@ -329,7 +329,7 @@ public static T Min<T>(this Query query, string column, IDbTransaction transacti

public static async Task<T> MinAsync<T>(this Query query, string column, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await query.AggregateAsync<T>("min", new[] { column }, transaction, timeout, cancellationToken);
return await query.AggregateAsync<T>("min", new[] { column }, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public static T Max<T>(this Query query, string column, IDbTransaction transaction = null, int? timeout = null)
@@ -339,7 +339,7 @@ public static T Max<T>(this Query query, string column, IDbTransaction transacti

public static async Task<T> MaxAsync<T>(this Query query, string column, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await query.AggregateAsync<T>("max", new[] { column }, transaction, timeout, cancellationToken);
return await query.AggregateAsync<T>("max", new[] { column }, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

internal static XQuery CastToXQuery(Query query, string method = null)
56 changes: 28 additions & 28 deletions SqlKata.Execution/QueryFactory.cs
Original file line number Diff line number Diff line change
@@ -98,9 +98,9 @@ public async Task<IEnumerable<T>> GetAsync<T>(Query query, IDbTransaction transa
commandTimeout: timeout ?? this.QueryTimeout,
cancellationToken: cancellationToken);

var result = (await this.Connection.QueryAsync<T>(commandDefinition)).ToList();
var result = (await this.Connection.QueryAsync<T>(commandDefinition).ConfigureAwait(false)).ToList();

result = (await handleIncludesAsync(query, result, cancellationToken)).ToList();
result = (await handleIncludesAsync(query, result, cancellationToken).ConfigureAwait(false)).ToList();

return result;
}
@@ -129,7 +129,7 @@ public async Task<IEnumerable<IDictionary<string, object>>> GetDictionaryAsync(Q
commandTimeout: timeout ?? this.QueryTimeout,
cancellationToken: cancellationToken);

var result = await this.Connection.QueryAsync(commandDefinition);
var result = await this.Connection.QueryAsync(commandDefinition).ConfigureAwait(false);

return result.Cast<IDictionary<string, object>>();
}
@@ -141,7 +141,7 @@ public IEnumerable<dynamic> Get(Query query, IDbTransaction transaction = null,

public async Task<IEnumerable<dynamic>> GetAsync(Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await GetAsync<dynamic>(query, transaction, timeout, cancellationToken);
return await GetAsync<dynamic>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public T FirstOrDefault<T>(Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -153,7 +153,7 @@ public T FirstOrDefault<T>(Query query, IDbTransaction transaction = null, int?

public async Task<T> FirstOrDefaultAsync<T>(Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
var list = await GetAsync<T>(query.Limit(1), transaction, timeout, cancellationToken);
var list = await GetAsync<T>(query.Limit(1), transaction, timeout, cancellationToken).ConfigureAwait(false);

return list.ElementAtOrDefault(0);
}
@@ -165,7 +165,7 @@ public dynamic FirstOrDefault(Query query, IDbTransaction transaction = null, in

public async Task<dynamic> FirstOrDefaultAsync(Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await FirstOrDefaultAsync<dynamic>(query, transaction, timeout, cancellationToken);
return await FirstOrDefaultAsync<dynamic>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public T First<T>(Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -182,7 +182,7 @@ public T First<T>(Query query, IDbTransaction transaction = null, int? timeout =

public async Task<T> FirstAsync<T>(Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
var item = await FirstOrDefaultAsync<T>(query, transaction, timeout, cancellationToken);
var item = await FirstOrDefaultAsync<T>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);

if (item == null)
{
@@ -199,7 +199,7 @@ public dynamic First(Query query, IDbTransaction transaction = null, int? timeou

public async Task<dynamic> FirstAsync(Query query, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await FirstAsync<dynamic>(query, transaction, timeout, cancellationToken);
return await FirstAsync<dynamic>(query, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public int Execute(
@@ -233,7 +233,7 @@ public async Task<int> ExecuteAsync(
commandTimeout: timeout ?? this.QueryTimeout,
cancellationToken: cancellationToken);

return await this.Connection.ExecuteAsync(commandDefinition);
return await this.Connection.ExecuteAsync(commandDefinition).ConfigureAwait(false);
}

public T ExecuteScalar<T>(Query query, IDbTransaction transaction = null, int? timeout = null)
@@ -263,7 +263,7 @@ public async Task<T> ExecuteScalarAsync<T>(
commandTimeout: timeout ?? this.QueryTimeout,
cancellationToken: cancellationToken);

return await this.Connection.ExecuteScalarAsync<T>(commandDefinition);
return await this.Connection.ExecuteScalarAsync<T>(commandDefinition).ConfigureAwait(false);
}

public SqlMapper.GridReader GetMultiple<T>(
@@ -296,7 +296,7 @@ public SqlMapper.GridReader GetMultiple<T>(
commandTimeout: timeout ?? this.QueryTimeout,
cancellationToken: cancellationToken);

return await this.Connection.QueryMultipleAsync(commandDefinition);
return await this.Connection.QueryMultipleAsync(commandDefinition).ConfigureAwait(false);
}

public IEnumerable<IEnumerable<T>> Get<T>(
@@ -333,7 +333,7 @@ public async Task<IEnumerable<IEnumerable<T>>> GetAsync<T>(
transaction,
timeout,
cancellationToken
);
).ConfigureAwait(false);

var list = new List<IEnumerable<T>>();

@@ -367,7 +367,7 @@ public async Task<bool> ExistsAsync(Query query, IDbTransaction transaction = nu
.SelectRaw("1 as [Exists]")
.Limit(1);

var rows = await GetAsync(clone, transaction, timeout, cancellationToken);
var rows = await GetAsync(clone, transaction, timeout, cancellationToken).ConfigureAwait(false);

return rows.Any();
}
@@ -397,7 +397,7 @@ public async Task<T> AggregateAsync<T>(
transaction,
timeout,
cancellationToken
);
).ConfigureAwait(false);
}

public T Count<T>(Query query, string[] columns = null, IDbTransaction transaction = null, int? timeout = null)
@@ -411,7 +411,7 @@ public T Count<T>(Query query, string[] columns = null, IDbTransaction transacti

public async Task<T> CountAsync<T>(Query query, string[] columns = null, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await this.ExecuteScalarAsync<T>(query.AsCount(columns), transaction, timeout, cancellationToken);
return await this.ExecuteScalarAsync<T>(query.AsCount(columns), transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public T Average<T>(Query query, string column, IDbTransaction transaction = null, int? timeout = null)
@@ -421,7 +421,7 @@ public T Average<T>(Query query, string column, IDbTransaction transaction = nul

public async Task<T> AverageAsync<T>(Query query, string column, CancellationToken cancellationToken = default)
{
return await this.AggregateAsync<T>(query, "avg", new[] { column }, cancellationToken: cancellationToken);
return await this.AggregateAsync<T>(query, "avg", new[] { column }, cancellationToken: cancellationToken).ConfigureAwait(false);
}

public T Sum<T>(Query query, string column)
@@ -431,7 +431,7 @@ public T Sum<T>(Query query, string column)

public async Task<T> SumAsync<T>(Query query, string column, CancellationToken cancellationToken = default)
{
return await this.AggregateAsync<T>(query, "sum", new[] { column }, cancellationToken: cancellationToken);
return await this.AggregateAsync<T>(query, "sum", new[] { column }, cancellationToken: cancellationToken).ConfigureAwait(false);
}

public T Min<T>(Query query, string column)
@@ -441,7 +441,7 @@ public T Min<T>(Query query, string column)

public async Task<T> MinAsync<T>(Query query, string column, CancellationToken cancellationToken = default)
{
return await this.AggregateAsync<T>(query, "min", new[] { column }, cancellationToken: cancellationToken);
return await this.AggregateAsync<T>(query, "min", new[] { column }, cancellationToken: cancellationToken).ConfigureAwait(false);
}

public T Max<T>(Query query, string column)
@@ -451,7 +451,7 @@ public T Max<T>(Query query, string column)

public async Task<T> MaxAsync<T>(Query query, string column, CancellationToken cancellationToken = default)
{
return await this.AggregateAsync<T>(query, "max", new[] { column }, cancellationToken: cancellationToken);
return await this.AggregateAsync<T>(query, "max", new[] { column }, cancellationToken: cancellationToken).ConfigureAwait(false);
}

public PaginationResult<T> Paginate<T>(Query query, int page, int perPage = 25, IDbTransaction transaction = null, int? timeout = null)
@@ -501,13 +501,13 @@ public async Task<PaginationResult<T>> PaginateAsync<T>(Query query, int page, i
throw new ArgumentException("PerPage param should be greater than or equal to 1", nameof(perPage));
}

var count = await CountAsync<long>(query.Clone(), null, transaction, timeout, cancellationToken);
var count = await CountAsync<long>(query.Clone(), null, transaction, timeout, cancellationToken).ConfigureAwait(false);

IEnumerable<T> list;

if (count > 0)
{
list = await GetAsync<T>(query.Clone().ForPage(page, perPage), transaction, timeout, cancellationToken);
list = await GetAsync<T>(query.Clone().ForPage(page, perPage), transaction, timeout, cancellationToken).ConfigureAwait(false);
}
else
{
@@ -557,7 +557,7 @@ public async Task ChunkAsync<T>(
CancellationToken cancellationToken = default
)
{
var result = await this.PaginateAsync<T>(query, 1, chunkSize, transaction, cancellationToken: cancellationToken);
var result = await this.PaginateAsync<T>(query, 1, chunkSize, transaction, cancellationToken: cancellationToken).ConfigureAwait(false);

if (!func(result.List, 1))
{
@@ -596,7 +596,7 @@ public async Task ChunkAsync<T>(
CancellationToken cancellationToken = default
)
{
var result = await this.PaginateAsync<T>(query, 1, chunkSize, transaction, timeout, cancellationToken);
var result = await this.PaginateAsync<T>(query, 1, chunkSize, transaction, timeout, cancellationToken).ConfigureAwait(false);

action(result.List, 1);

@@ -626,7 +626,7 @@ public async Task<IEnumerable<T>> SelectAsync<T>(string sql, object param = null
commandTimeout: timeout ?? this.QueryTimeout,
cancellationToken: cancellationToken);

return await this.Connection.QueryAsync<T>(commandDefinition);
return await this.Connection.QueryAsync<T>(commandDefinition).ConfigureAwait(false);
}

public IEnumerable<dynamic> Select(string sql, object param = null, IDbTransaction transaction = null, int? timeout = null)
@@ -636,7 +636,7 @@ public IEnumerable<dynamic> Select(string sql, object param = null, IDbTransacti

public async Task<IEnumerable<dynamic>> SelectAsync(string sql, object param = null, IDbTransaction transaction = null, int? timeout = null, CancellationToken cancellationToken = default)
{
return await this.SelectAsync<dynamic>(sql, param, transaction, timeout, cancellationToken);
return await this.SelectAsync<dynamic>(sql, param, transaction, timeout, cancellationToken).ConfigureAwait(false);
}

public int Statement(string sql, object param = null, IDbTransaction transaction = null, int? timeout = null)
@@ -652,7 +652,7 @@ public async Task<int> StatementAsync(string sql, object param = null, IDbTransa
transaction: transaction,
commandTimeout: timeout ?? this.QueryTimeout,
cancellationToken: cancellationToken);
return await this.Connection.ExecuteAsync(commandDefinition);
return await this.Connection.ExecuteAsync(commandDefinition).ConfigureAwait(false);
}

private static IEnumerable<T> handleIncludes<T>(Query query, IEnumerable<T> result)
@@ -807,7 +807,7 @@ private static async Task<IEnumerable<T>> handleIncludesAsync<T>(Query query, IE
continue;
}

var children = (await include.Query.WhereIn(include.ForeignKey, localIds).GetAsync(cancellationToken: cancellationToken))
var children = (await include.Query.WhereIn(include.ForeignKey, localIds).GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false))
.Cast<IDictionary<string, object>>()
.Select(x => new Dictionary<string, object>(x, StringComparer.OrdinalIgnoreCase))
.GroupBy(x => x[include.ForeignKey].ToString())
@@ -836,7 +836,7 @@ private static async Task<IEnumerable<T>> handleIncludesAsync<T>(Query query, IE
continue;
}

var related = (await include.Query.WhereIn(include.LocalKey, foreignIds).GetAsync(cancellationToken: cancellationToken))
var related = (await include.Query.WhereIn(include.LocalKey, foreignIds).GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false))
.Cast<IDictionary<string, object>>()
.Select(x => new Dictionary<string, object>(x, StringComparer.OrdinalIgnoreCase))
.ToDictionary(x => x[include.LocalKey].ToString());
4 changes: 4 additions & 0 deletions SqlKata.Execution/SqlKata.Execution.csproj
Original file line number Diff line number Diff line change
@@ -27,6 +27,10 @@
<ProjectReference Include="..\QueryBuilder\QueryBuilder.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="5.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="dapper" Version="1.50.5" />
<PackageReference Include="Humanizer.Core" Version="2.8.26" />
</ItemGroup>