/// <summary> /// Find entities by expression predicate with pagination /// </summary> /// <param name="predicate">Expression predicate</param> /// <param name="cancellationToken">Cancellation token</param> /// <returns>List of stored entities</returns> public Task <IEnumerable <T> > ListByQueryAsync(Expression <Func <T, bool> > predicate, long limit, ulong offset, CancellationToken cancellationToken = default(CancellationToken)) { Ensure.Argument.NotNull(predicate, nameof(predicate)); var result = MySqlGenerator.SelectQuery(predicate, offset, limit); return(Connection.ExecuteQueryAsync <T>(result.Sql, result.Param, cancellationToken: cancellationToken)); }
public Task <T> GetByQueryAsync(Expression <Func <T, bool> > predicate, CancellationToken cancellationToken = default(CancellationToken)) { var result = MySqlGenerator.SelectQuery(predicate); return(Connection.ExecuteQueryFirstOrDefaultAsync <T>(result.Sql, result.Param, cancellationToken: cancellationToken)); }
/// <summary> /// List all entities with pagination /// </summary> /// <param name="cancellationToken">Cancellation token</param> /// <returns>List of stored entities</returns> public Task <IEnumerable <T> > ListAllAsync(long limit, ulong offset, CancellationToken cancellationToken = default(CancellationToken)) { return(Connection.ExecuteQueryAsync <T>(MySqlGenerator.SelectAllQuery <T>(limit, offset), cancellationToken: cancellationToken)); }
/// <summary> /// Update entity /// </summary> /// <param name="entity">Entity</param> /// <param name="cancellationToken">Cancellation token</param> public Task UpdateAsync(T entity, CancellationToken cancellationToken = default(CancellationToken)) { return(Connection.ExecuteNonQueryAsync(MySqlGenerator.UpdateQuery <T>(), entity, cancellationToken: cancellationToken)); }
/// <summary> /// Create entity /// </summary> /// <param name="entity">Entity</param> /// <param name="cancellationToken">Cancellation token</param> public Task <T> CreateAsyncWithResult(T entity, CancellationToken cancellationToken = default(CancellationToken)) { return(Connection.ExecuteQueryFirstOrDefaultAsync <T>(MySqlGenerator.InsertQueryWithResult <T>(), entity, cancellationToken: cancellationToken)); }