¿Máximo o predeterminado?

¿Cuál es la mejor manera de obtener el valor máximo de una consulta LINQ que puede no devolver filas? Si solo lo hago

Dim x = (From y In context.MyTable _
         Where y.MyField = value _
         Select y.MyCounter).Max

Recibo un error cuando la consulta no devuelve filas. Yo podría hacer

Dim x = (From y In context.MyTable _
         Where y.MyField = value _
         Select y.MyCounter _
         Order By MyCounter Descending).FirstOrDefault

pero eso se siente un poco obtuso para una solicitud tan simple. ¿Me estoy perdiendo una mejor manera de hacerlo?

ACTUALIZACIÓN: Aquí está la historia de fondo: estoy tratando de recuperar el siguiente contador de elegibilidad de una tabla secundaria (sistema heredado, no me hagas empezar ...). La primera fila de elegibilidad para cada paciente es siempre 1, la segunda es 2, etc. (obviamente, esta no es la clave principal de la tabla secundaria). Entonces, selecciono el valor máximo de contador existente para un paciente y luego agrego 1 para crear una nueva fila. Cuando no hay valores secundarios existentes, necesito que la consulta devuelva 0 (por lo tanto, agregar 1 me dará un valor de contador de 1). Tenga en cuenta que no quiero confiar en el recuento bruto de filas secundarias, en caso de que la aplicación heredada presente huecos en los valores del contador (posible). Mi mal por tratar de hacer la pregunta demasiado genérica.

Respuestas a la pregunta(17)

Su respuesta a la pregunta