Оператор LINQ, который возвращает rownumber элемента с идентификатором == что-то?

Можно также использовать DoubleCommand, чтобы повторно отобразить это и другие ключи.

IIRC, это отобразит Caps Lock на Esc.

11
задан Ante 15 July 2009 в 16:58
поделиться

3 ответа

Насколько мне известно, прямого способа сделать это нет. Вам нужно будет передать весь запрос клиенту, и оттуда вы можете проецировать номера строк. В качестве альтернативы вы можете написать хранимую процедуру, которая использует ROW_NUMBER, а затем перейти к этой процедуре из Linq в SQL.

В вашем случае единственный способ, которым вы сможете это сделать, будет на стороне клиента. Имейте в виду, что следующий оператор НЕ будет делать это на сервере, но он развернет всю вашу таблицу и получит индекс на клиенте ...

using (var dc = new DataClasses1DataContext())
{
    var result = dc.Users
        .AsEnumerable()     // select all users from the database and bring them back to the client
        .Select((user, index) => new   // project in the index
        {
            user.Username,
            index
        })
        .Where(user => user.Username == "sivey");    // filter for your specific record

    foreach (var item in result)
    {
        Console.WriteLine(string.Format("{0}:{1}", item.index, item.Username));
    }
}
12
ответ дан 3 December 2019 в 07:14
поделиться

Для этого у вас должна быть возможность использовать методы расширения Skip and Take.

Например, если вам нужна строка 10:

from c in customers
           where c.Region == "somewhere"
           orderby c.CustomerName
           select new {c.CustomerID, c.CustomerName} 
           .Skip(9).Take(1);
4
ответ дан 3 December 2019 в 07:14
поделиться

Как проецировать номер строки в результаты запроса Linq
Как проецировать номер строки в результаты запроса Linq

1
ответ дан 3 December 2019 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: