Máximo ou Padrão?

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?

ATUALIZAÇÃO: 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). É ruim por tentar tornar a pergunta muito genérica.

questionAnswers(17)

yourAnswerToTheQuestion