我有一个显示20个项目每页上客户端的表1万件(项目可以额外过滤)获取元素页码
我需要找到所有元素中的项目。然后,我需要获取页码,在哪里找到元素,然后选择该页面并选择它
我之前的问题是 Get item index (rownum)。
但我没有得到答案。
也许还有另一种方法找到项目所在的页码而不是获取所有表格数据?
我正在使用Linq到Nhibernate,Database - Oracle。
编辑:感谢答复,但它不是那么容易
例子:
在表分贝,我有
ID NAME
1 Item1
2
3
4
5
20
31
..... ....
5000
在客户端,我过滤的数据
query = query.Where(...).Where(...).Where(...).OrderBy(...)
并得到结果
ID ROW_NUM_IN_QUERY
4 1
300 2
2 3
31 4
..... ....
402 50
800 51
我不能链接到现场查询ID
或其他,因为它们可能会以不同的顺序
我可以在简单的SQL得到ROWNUM。但是NHibernate的Linq无法做到这一点。它不能从IndexOf
或RowNumber
这样的功能中完全没有从表中获取数据。
这个变体:
var indexed = myDataSource.Select((x,n) => new { Value = x, RowNumber = n });
Not suported exception during execute query
但是,您如何知道特定物品的索引?我认为OP的要求是,如果他选择了一个任意的项目(可能通过某种过滤器),他怎么知道它将会在哪个页面上? – villecoder 2012-04-23 18:01:26
@villecoder这正是这个查询所做的事情,或者至少是它打算做的。我在评论中进行了编辑,使其更加清晰。这个想法是,你需要采取任何相关的查询,并在“当前项目之前的项目出现在哪里”,然后抓取计数。 – Servy 2012-04-23 18:03:25
Thx,我编辑过,请看 – Kronos 2012-04-23 19:09:21