public async Task <IEnumerable <TEntity> > TakeAsync(IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructTakeSql(take, selectFields, whereClause, orderbyClause.IsNull ? CreateDefaultOrderbyClause() : orderbyClause); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); return((await conn.QueryAsync <TEntity>(cmd)).AsList()); }
public async Task <TEntity> SingleOrDefaultAsync(IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, Expression <Func <TEntity, object> > id, TKey value, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (id == null) { throw new ArgumentNullException(nameof(id)); } var result = ConstructSingleSql(selectFields, id, value); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); return((await conn.QueryAsync <TEntity>(cmd)).SingleOrDefault()); }