Jaki jest najlepszy sposób uzyskania wartości Max z zapytania LINQ, które może nie zwracać żadnych wierszy? Jeśli po prostu to zrobię
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter).Max
Pojawia się błąd, gdy zapytanie nie zwraca żadnych wierszy. mógłbym zrobić
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter _
Order By MyCounter Descending).FirstOrDefault
ale wydaje się to trochę tępe jak na tak prostą prośbę. Czy brakuje mi lepszego sposobu, aby to zrobić?
AKTUALIZACJA: Oto historia: próbuję pobrać następny licznik uprawnień z tabeli podrzędnej (starszy system, nie zaczynaj mnie ...). Pierwszy wiersz uprawnień dla każdego pacjenta to zawsze 1, drugi to 2 itd. (Oczywiście nie jest to klucz podstawowy tabeli podrzędnej). Tak więc wybieram maksymalną istniejącą wartość licznika dla pacjenta, a następnie dodaję do niej 1, aby utworzyć nowy wiersz. Gdy nie ma żadnych istniejących wartości podrzędnych, potrzebuję zapytania, aby zwrócić 0 (więc dodanie 1 da mi wartość licznika 1). Zauważ, że nie chcę polegać na nieprzetworzonej liczbie wierszy podrzędnych, na wypadek gdyby starsza aplikacja wprowadziła luki w wartościach liczników (możliwe). Moja wina, że próbowałem uczynić to pytanie zbyt ogólnym.