Qual è il modo migliore per ottenere il valore massimo da una query LINQ che potrebbe non restituire righe? Se solo lo facessi
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter).Max
Viene visualizzato un errore quando la query non restituisce righe. Potrei fare
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter _
Order By MyCounter Descending).FirstOrDefault
ma sembra un po 'ottuso per una richiesta così semplice. Mi sto perdendo un modo migliore per farlo?
AGGIORNAMENTO: Ecco la storia precedente: sto cercando di recuperare il contatore di idoneità successivo da un tavolo figlio (sistema legacy, non farmi iniziare ...). La prima riga di idoneità per ogni paziente è sempre 1, la seconda è 2, ecc. (Ovviamente questa non è la chiave primaria della tabella figlio). Quindi, sto selezionando il valore del contatore massimo esistente per un paziente e quindi aggiungendo 1 ad esso per creare una nuova riga. Quando non ci sono valori figlio esistenti, ho bisogno che la query restituisca 0 (quindi l'aggiunta di 1 mi darà un valore contatore di 1). Si noti che non voglio fare affidamento sul conteggio non elaborato delle righe figlio, nel caso in cui l'app legacy introduca lacune nei valori del contatore (possibile). Il mio male per aver cercato di rendere la domanda troppo generica.