ehsan_kabiri_33
دوشنبه 19 خرداد 1399, 15:45 عصر
سلام
درود. در صورتیکه متد Get ما بازگشتی از نوع IQueryable داشته باشد (به دلیل واکشی مناسب اطلاعات از دیتا بیس) چگونه میتوان آنرا Async کرد؟؟
public IQueryable<TEntity> Get(Expression<Func<TEntity, bool>> filter = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, string includeProperties = null)
{
IQueryable<TEntity> query = _dbSet;
if (filter != null)
{
query = query.Where(filter);
}
if (orderBy != null)
{
query = orderBy(query);
}
if (includeProperties != null)
{
foreach (var includeProperty in includeProperties.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
}
return query;
}
چون برای Async شدن باید به .ToListAsync تبدیل شود که در آن صورت دیگر Iqueryable نخواهد بود و کل دیتا از دیتا بیس فراخوانی میشود. و در صورت عدم استفاده از Tolist نمیدونم چطوری میشه درخواستهای Get را به صورت Async اجرا کرد.
درود. در صورتیکه متد Get ما بازگشتی از نوع IQueryable داشته باشد (به دلیل واکشی مناسب اطلاعات از دیتا بیس) چگونه میتوان آنرا Async کرد؟؟
public IQueryable<TEntity> Get(Expression<Func<TEntity, bool>> filter = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, string includeProperties = null)
{
IQueryable<TEntity> query = _dbSet;
if (filter != null)
{
query = query.Where(filter);
}
if (orderBy != null)
{
query = orderBy(query);
}
if (includeProperties != null)
{
foreach (var includeProperty in includeProperties.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
}
return query;
}
چون برای Async شدن باید به .ToListAsync تبدیل شود که در آن صورت دیگر Iqueryable نخواهد بود و کل دیتا از دیتا بیس فراخوانی میشود. و در صورت عدم استفاده از Tolist نمیدونم چطوری میشه درخواستهای Get را به صورت Async اجرا کرد.