VB.NET - LINQ to SQL - 如何在VB.NET中将Row_Number添加到LINQ to SQL查询中?

Bri*_*ter 4 vb.net linq-to-sql

如何将ROW_NUMBER添加到LINQ查询或实体?

如何将此解决方案转换为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
Run Code Online (Sandbox Code Playgroud)

我在移植最后一行时遇到了麻烦.我无法找到VB.NET示例.

我实际上并没有寻找像示例提供的任何分页功能,只是很好的老式Row_Number(Order By X)行索引.

Amy*_*y B 6

LinqToSql无法在数据库中执行Row_Number(Order By X).

您发布的c#代码通过调用Enumerable.Select来对内存中的实例进行处理

在Enumerable.Select 的msdn页面上,有一个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
Run Code Online (Sandbox Code Playgroud)