행을 반환하지 않을 수있는 LINQ 쿼리에서 Max 값을 얻는 가장 좋은 방법은 무엇입니까? 내가 방금하면
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이됩니다. 레거시 앱이 카운터 값에 차이를 일으킬 수있는 경우 자식 행의 원시 수에 의존하고 싶지 않습니다. 질문을 너무 일반적으로 만들려고 노력했기 때문에 나쁘다.