で私は車を取得する方法「AllMakesAsync」を有するデータベースからなる:非同期AsQueryable私のリポジトリ内のリポジトリ
: リポジトリにpublic async Task<IEnumerable<VehicleMake>> AllMakesAsync()
{
return await _context.VehicleMakes.ToListAsync();
}
Iはまた、「AllMakesAsync」法が使用されている「GetVehicleMakesWithPaginationAsync」方法を有します
public async Task<IEnumerable<VehicleMake>> GetVehicleMakesWithPaginationAsync(string search, int? page, string sort)
{
var makes = await AllMakesAsync();
switch (sort)
{
case "Name desc":
makes = makes.OrderByDescending(x => x.Name);
break;
default:
makes = makes.OrderBy(x => x.Name);
break;
}
if (search == null)
{
return makes.ToList().ToPagedList(page ?? 1, 5);
}
return makes.Where(x => x.Name.StartsWith(search, StringComparison.OrdinalIgnoreCase)).ToList().ToPagedList(page ?? 1, 5);
}
データセットでフィルタリングを使用する場合は「ToListAsync()」を使用しないでください。代わりに「AsQueryable」を使用する必要があると言われました。
問題は、AsQueryableを非同期に実装する方法がわかりません。
私はこのような「AsQueryable」を返すことができます。
public async Task<IQueryable<VehicleMake>> AllMakesAsync()
{
var vehicleMakes = await _context.VehicleMakes.AsQueryable().ToListAsync();
return vehicleMakes.AsQueryable();
}
が、ここで、それは良くないですので、私は再び「)(ToListAsync」を使用します。
誰かがこれを正しく行う方法を教えてもらえますか?
参照:https://stackoverflow.com/questions/26676563/entity-framework-queryable-async – 12seconds