У меня есть список Parent
объектов, имеющих список Children
объектов. Мне нужно написать запрос, который даст мне родителя, у которого больше всего детей. ORM - это структура сущности, поэтому она должна работать с этим.LINQ get parent with most children
код начинать с:
parents.FirstOrDefault(c => c.Children.Max());
Что-то в этом роде.
Разве это не будет посещать каждую запись дважды? Может, это займет больше времени, чем порядок? –
Да - ему придется проходить дважды, так что это 'O (2n)' = 'O (n)', где сортировка - «O (n lg n)». Учитывая, что это делается по поставщику запросов EF, хотя наиболее вероятно, что сортировка + select top (1) оптимизирована внутри, чтобы фактически работать лучше, чем нужно. – BrokenGlass
@BrokenGlass, поэтому ответ Validmir более эффективен как в памяти, так и при преобразовании в сохраненное выражение? –