0
mgarcia created
Hi!
Im having an issue, my code is working but im thinking in long terms.
Right now I have this method:
private async Task<bool> ValidateRecurrentEventExecution()
{
try
{
var recurrentEventsExecutions = await _recurrentEventExecution.GetAllListAsync();
foreach (var recurrentEventsExecution in recurrentEventsExecutions)
{
if (DateTimeToString(recurrentEventsExecution.StartDate) == DateTimeToString(DateTime.Now))
return true;
}
return false;
}
catch (Exception e)
{
throw e;
}
}
And everything works fine but when in a few months or year this could return a lot of items in the list.
var recurrentEventsExecutions = await _recurrentEventExecution.GetAllListAsync();
So Im trying to do something like:
var recurrentEventsExecutions = await _recurrentEventExecution.GetAllListAsync().orderByDecending(x => x.Id).take(20);
But IRepository doesn have this methods
namespace Abp.Domain.Repositories
{
public interface IRepository<TEntity, TPrimaryKey> : IRepository, ITransientDependency where TEntity : class, IEntity<TPrimaryKey>
{
int Count();
int Count(Expression<Func<TEntity, bool>> predicate);
Task<int> CountAsync(Expression<Func<TEntity, bool>> predicate);
Task<int> CountAsync();
void Delete(TEntity entity);
void Delete(TPrimaryKey id);
void Delete(Expression<Func<TEntity, bool>> predicate);
Task DeleteAsync(TPrimaryKey id);
Task DeleteAsync(Expression<Func<TEntity, bool>> predicate);
Task DeleteAsync(TEntity entity);
TEntity FirstOrDefault(Expression<Func<TEntity, bool>> predicate);
TEntity FirstOrDefault(TPrimaryKey id);
Task<TEntity> FirstOrDefaultAsync(Expression<Func<TEntity, bool>> predicate);
Task<TEntity> FirstOrDefaultAsync(TPrimaryKey id);
TEntity Get(TPrimaryKey id);
IQueryable<TEntity> GetAll();
IQueryable<TEntity> GetAllIncluding(params Expression<Func<TEntity, object>>[] propertySelectors);
List<TEntity> GetAllList(Expression<Func<TEntity, bool>> predicate);
List<TEntity> GetAllList();
Task<List<TEntity>> GetAllListAsync(Expression<Func<TEntity, bool>> predicate);
Task<List<TEntity>> GetAllListAsync();
Task<TEntity> GetAsync(TPrimaryKey id);
TEntity Insert(TEntity entity);
TPrimaryKey InsertAndGetId(TEntity entity);
Task<TPrimaryKey> InsertAndGetIdAsync(TEntity entity);
Task<TEntity> InsertAsync(TEntity entity);
TEntity InsertOrUpdate(TEntity entity);
TPrimaryKey InsertOrUpdateAndGetId(TEntity entity);
Task<TPrimaryKey> InsertOrUpdateAndGetIdAsync(TEntity entity);
Task<TEntity> InsertOrUpdateAsync(TEntity entity);
TEntity Load(TPrimaryKey id);
long LongCount(Expression<Func<TEntity, bool>> predicate);
long LongCount();
Task<long> LongCountAsync();
Task<long> LongCountAsync(Expression<Func<TEntity, bool>> predicate);
T Query<T>(Func<IQueryable<TEntity>, T> queryMethod);
TEntity Single(Expression<Func<TEntity, bool>> predicate);
Task<TEntity> SingleAsync(Expression<Func<TEntity, bool>> predicate);
TEntity Update(TEntity entity);
TEntity Update(TPrimaryKey id, Action<TEntity> updateAction);
Task<TEntity> UpdateAsync(TPrimaryKey id, Func<TEntity, Task> updateAction);
Task<TEntity> UpdateAsync(TEntity entity);
}
}
1 Answer(s)
-
0
Seems to be your spelling mistake OrderByDescending
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.orderbydescending?view=netframework-4.7.2
If you want to use database paging, please use IQueryable