Каков наилучший способ получить значение 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). Обратите внимание, что я не хочу полагаться на необработанное количество дочерних строк в случае, если унаследованное приложение вводит пробелы в значениях счетчика (возможно). Моя плохая попытка сделать вопрос слишком общим.