Как мне реализовать сортировку с Linq для Sql и ASP.NET MVC? - PullRequest
3 голосов
/ 22 августа 2011

У меня есть приложение ASP.NET MVC, в котором отображается список продуктов.

 // Product Controller
 public ActionResult List(string sort, int page)
 {
     var products = _productService.GetProducts(page, sort);
     return View(products);
 }

 // ProductService.cs
 public IEnumerable<Products> GetProducts(int pageIndex, string sort)
 {
     return _productRepository.GetProducts(pageIndex, 50, sort);
 }


 // ProductsRepository.cs
 public IEnumerable<Products> GetProducts(int pageIndex, int pageSize, string sort)
 {
     using(var db = new ShopDataContext())
     {
          return db.Products.OrderBy(??).Skip(pageIndex * pageSize).Take(pageSize).ToList();
     }
 }

У меня очень простой сервисный слой и хранилище.

Как мне отсортировать мой запрос Linq to SQL по какой-либо произвольной строке / выражению сортировки, которые я извлекаю из строки запроса моего действия?

/ продукты? Сортировать = горячая и страница = 2

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Вы можете использовать Dynamic Linq для этого, а затем вы можете просто сделать что-то вроде OrderBy («Горячий ASC»).Проверьте ссылку ниже:

Динамический LINQ

1 голос
/ 22 августа 2011

эта страница поможет лучше

http://www.asp.net/entity-framework/tutorials/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

также вы можете использовать pagedlist.mvc для разбитого на страницы списка

https://github.com/TroyGoode/PagedList

это так просто, и если вы устанавливаете версию mvc, вам просто нужно написать при просмотре этого кода, тогда все страницы и следующие кнопки создаются автоматически

@Html.PagedListPager((IPagedList)ViewBag.OnePageOfProducts, page => Url.Action("Index", new { page = page }))

если вы получаете стек на любом шаге, пожалуйста, спросите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...