У меня есть запрос LINQ, который заканчивается на .Min(mytable.Id). Это вернет целое число. Затем мне нужно сделать еще один запрос, чтобы извлечь этот объект из этой таблицы. Есть ли способ сделать это без написания двух запросов?
Я мог бы поместить запрос .Min() в качестве подзапроса, но будет ли это быстрее, чем два отдельных запроса?
O(n log n)
), вам не нужно сортировать коллекцию, чтобы получить минимум... это можно сделать вO(n)
с помощью метода MinBy (см. мой ответ) 07.12.2011OrderBy
откладывается. 07.12.2011select top 1 * from table order by id
, который, в свою очередь, будет реализован базой данных по-разному в зависимости от индексации, но вполне может быть O (n log n), O(n) или O(1) в зависимости от множества вещей. В любом случае MinBy равен O(n), но после извлечения каждой строки и, следовательно, гораздо менее эффективен. 08.12.2011