-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Merhaba,
GetAll fonksiyonlarında server side sayfalama için hazırlanmış bir fonksiyon yok. Aşağıdaki yapıya benzer sayfalama ve filtreleme mantığına uygun bir fonksiyon ekleyebilir misiniz? Ayrıca bu fonksiyonu result pattern eklentinizle uyumlu hale de getirebilirsiniz.
public Tuple<int, int, IQueryable<TEntity>> GetAll(
int page, int pageSize,
Expression<Func<TEntity, bool>>? expression = null,
bool trackChanges = false,
Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>>? include = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>>? orderBy = null)
{
IQueryable<TEntity> query = _appDbContext.Set<TEntity>();
if (include != null)
{
query = include(query);
}
int totalCount = query.Count();
int filteredCount = totalCount;
if (expression != null)
{
query = query.Where(expression);
filteredCount = query.Count();
}
if (orderBy != null)
{
query = orderBy(query);
}
query = query.Skip((page - 1) * pageSize).Take(pageSize);
if (!trackChanges)
{
query = query.AsNoTracking();
}
return new Tuple<int, int, IQueryable<TEntity>>(totalCount, filteredCount, query);
}
Metadata
Metadata
Assignees
Labels
No labels