How do I add ROW_NUMBER to a LINQ query or Entity?
如何将此解决方案转换为VB.NET?
var start = page * rowsPerPage;
Products.OrderByDescending(u => u.Sales.Count())
.Skip(start)
.Take(rowsPerPage)
.AsEnumerable()
.Select((u, index) => new { Product = u, Index = index + start }); // this line gets me
我在移植最后一行时遇到了麻烦。我无法找到VB.NET示例。
我实际上并没有寻找像示例所提供的任何分页功能,只是很好的老式Row_Number(Order By X)
行索引。
答案 0 :(得分:6)
LinqToSql无法在数据库中执行Row_Number(Order By X)。
您发布的c#代码通过调用Enumerable.Select
来对内存实例进行处理在Enumerable.Select的msdn page上,有一个vb.net示例。
这是一个演示VB.NET中行索引投影的工作示例:
Dim R = (
From P In DB.Products Select P
).AsEnumerable().Select(
Function(Product, index) New With {index, Product}
)
Response.Write(R(12).Product.Doc_width.ToString()) 'Access object members
Response.Write(R(12).index.ToString() 'Access Row Index