Linq to SQL использует ROW_NUMBER()
для подкачки, т.е. когда вы используете Skip() и Take().
Однако я не могу найти способ получить доступ к ROW_NUMBER()
значениям в запросе. Мне нужно найти ROW_NUMBER() записи в запросе (без возврата всех записей).
Я сделал это успешно в T-SQL и Linq to Objects, но решение Linq to SQL оказалось неуловимым.
В Linq to Objects я могу получить номер строки следующим образом:
var rowTarget =
mainQuery
.Select((obj, index) => new { obj.ID, Index = index })
.SingleOrDefault(x => x.ID == targetID);
// rowTarget.Index is the answer
Но Linq to SQL не поддерживает переопределения Select()
, которые используют параметр индекса (и это действительно имеет смысл - ROW_NUMBER()
будет использоваться только в том случае, если используются Skip() и Take()).
Кажется, я не могу найти решение, которое не приводит к возврату всех записей из базы данных.
Это вообще возможно?