У меня есть приложение ASP .Net Core MVC, в котором у меня есть таблица в представлении, которая заполняется данными из запроса структуры сущностей.Следуя этому руководству , я реализовал код для разбивки на таблицы.По какой-то причине, когда запрос данных таблицы отправляется со стороны клиента в действие контроллера, возникает следующая ошибка:
InvalidOperationException: The provider for the source IQueryable doesn't implement IAsyncQueryProvider. Only providers that implement IEntityQueryProvider can be used for Entity Framework asynchronous operations.
Вот действие контроллера:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> GetResultList(ResortDataJoinObj resDeals, int page =1)
{
if (ModelState.IsValid)
{
var resultsObj = (from rd in _db.ResortData
join ra in _db.ResortAvailability on rd.RecNo equals ra.RecNoDate
where ra.TotalPrice < Int32.Parse(resDeals.priceHighEnd) && ra.TotalPrice > Int32.Parse(resDeals.priceLowEnd)
select new
{
Name = rd.Name,
ImageUrl = rd.ImageUrl,
ResortDetails = rd.ResortDetails,
CheckIn = ra.CheckIn,
Address = rd.Address,
TotalPrice = ra.TotalPrice
});
int i = 0;
List<ResortDealResultsObject> resultList = new List<ResortDealResultsObject>();
foreach (var row in resultsObj)
{
var tempVm = new ResortDealResultsObject
{
Name = row.Name,
ImageUrl = row.ImageUrl,
ResortDetails = row.ResortDetails,
CheckIn = row.CheckIn,
Address = row.Address,
TotalPrice = row.TotalPrice
};
resultList.Add(tempVm);
}
int pageSize = 3;
var model = await PaginatedList<ResortDealResultsObject>.CreateAsync(resultList.AsQueryable(), page, pageSize);
ResortDataJoinObj joinObj = new ResortDataJoinObj();
joinObj.PageList = model;
ViewBag.rowsReturned = true;
return View(joinObj);
}
return View(resDeals);
}
Похоже, что ошибка вызвана строкой var model = await PaginatedList<ResortDealResultsObject>.CreateAsync(resultList.AsQueryable(), page, pageSize);
Эта строка вызывает метод в классе PaginatedList
, который реализован в своем собственном файле (как описано в руководстве):
public static async Task<PaginatedList<T>> CreateAsync(IQueryable<T> source, int pageIndex, int pageSize)
{
var count = await source.CountAsync();
var items = await source.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync();
return new PaginatedList<T>(items, count, pageIndex, pageSize);
}
Там нет ошибок прекомпилятора или ошибок компиляции, поэтому я не уверен, что именно здесь не так, поскольку я очень внимательно следую руководству. Что может быть причиной ошибки?