Який найкращий спосіб отримати значення Max із запиту LINQ, який може не повертати жодних рядків? Якщо я просто роблю
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter).Max
Я отримую помилку, коли запит не повертає рядків. Я міг би зробити
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter _
Order By MyCounter Descending).FirstOrDefault
але це відчуває трохи тупого для такого простого запиту. Чи пропускаю я кращий спосіб це зробити?
ОНОВЛЕННЯ: Ось зворотна історія: я намагаюся отримати наступний лічильник відповідності з дочірньої таблиці (застаріла система, не запускайте мене ...). Перший рядок відповідності для кожного пацієнта завжди 1, другий - 2 і т.д. (очевидно, це не первинний ключ дочірньої таблиці). Отже, я вибираю максимальне існуюче значення лічильника для пацієнта, а потім додаю до нього 1, щоб створити новий рядок. Коли немає існуючих дочірніх значень, мені потрібен запит, щоб повернути 0 (тому додавання 1 дасть мені лічильне значення 1). Зауважте, що я не хочу покладатися на необмежену кількість дочірніх рядків, якщо старий додаток вводить прогалини у лічильнику значень (можливо). Моє погане намагання зробити питання занадто загальним.