Можно также использовать DoubleCommand, чтобы повторно отобразить это и другие ключи.
IIRC, это отобразит Caps Lock на Esc.
Насколько мне известно, прямого способа сделать это нет. Вам нужно будет передать весь запрос клиенту, и оттуда вы можете проецировать номера строк. В качестве альтернативы вы можете написать хранимую процедуру, которая использует 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));
}
}
Для этого у вас должна быть возможность использовать методы расширения 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);
Как проецировать номер строки в результаты запроса Linq
Как проецировать номер строки в результаты запроса Linq