VB.NET - LINQ to SQL - Как добавить Row_Number в запрос LINQ to SQL в VB.NET? - PullRequest
4 голосов
/ 31 августа 2011

Как добавить 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

У меня проблемы с переносом последней строки. Мне не удалось найти пример VB.NET.

На самом деле я не ищу никаких функций подкачки, как в примере, просто старый добрый Row_Number(Order By X) индекс строки.

1 Ответ

6 голосов
/ 31 августа 2011

LinqToSql не может выполнить Row_Number (Order By X) в базе данных.

Код c #, который вы разместили, делает это против экземпляров в памяти, вызывая Enumerable.Select

В msdn page для Enumerable.Select, есть пример 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...