Qual é a melhor maneira de obter o valor máximo de uma consulta LINQ que pode não retornar linhas? Se eu apenas fizer
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter).Max
Eu recebo um erro quando a consulta não retorna linhas. eu poderia fazer
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter _
Order By MyCounter Descending).FirstOrDefault
mas isso parece um pouco obtuso para um pedido tão simples. Estou perdendo uma maneira melhor de fazer isso?
UPDATE: Aqui está a história de fundo: Estou tentando recuperar o próximo contador de elegibilidade de uma tabela filho (sistema legado, não me inicie ...). A primeira linha de elegibilidade para cada paciente é sempre 1, a segunda é 2, etc. (obviamente, essa não é a chave primária da tabela filho). Portanto, estou selecionando o valor máximo do contador existente para um paciente e adicionando 1 a ele para criar uma nova linha. Quando não há valores filho existentes, preciso que a consulta retorne 0 (portanto, adicionar 1 me fornecerá um valor de contador 1). Observe que não quero contar com a contagem bruta de linhas filhas, caso o aplicativo herdado introduza lacunas nos valores dos contadores (possível). Meu mal por tentar tornar a pergunta muito genérica.