如何使用SS3获取复杂的PagedList

时间:2009-07-15 07:37:52

标签: subsonic subsonic3

在我的演示中,我在数据库中有三个表,TProduct,TCategory和TProductCategoryMap。

  

TProduct(ProductId int PK,OtherFields)
  TCategory(CategoryId int PK,OtherFields)
  TMap(ProductId int PK,CategoryId int PK)

现在,我需要获得具有特定categoryid的产品的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表达式吗?那我怎样才能得到正确的结果呢?

给我一​​些建议,谢谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我现在修复了这个错误...将在今天某个时候推出下一个版本。