В моей демонстрации у меня есть три таблицы в базе данных: TProduct, TCategory и TProductCategoryMap.
TProduct (ProductId int PK, OtherFields)
TCategory (CategoryId int PK, OtherFields)
TMap (ProductId int PK, CategoryId int PK)
Теперь мне нужно получить PagedList продуктов с определенным идентификатором категории.
Вот мой код:
IQueryable<Product> products = from product in _repo.All<TProduct>()
join map in _repo.All<TMap>() on product.ProductId equals map.ProductId
where map.CategoryId == specificCagetoryId
select product;
Если я остановлюсь здесь и верну продукты, все в порядке.
Но если я верну список, подобный этому:
return new PagedList<TProduct>(products, pageIndex, pageSize);
сгенерированный текст sql вызовет синтаксическую ошибку "Функция ранжирования" ROW_NUMBER "должна содержать предложение ORDER BY."
Я использую неправильное выражение linq? Тогда как я могу получить правильный результат?
Дайте мне несколько советов, спасибо.