行を返さない可能性がある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番目は2などです(明らかに、これは子テーブルの主キーではありません)。そこで、患者の既存の最大カウンター値を選択し、それに1を追加して新しい行を作成します。既存の子の値がない場合、クエリで0を返す必要があります(1を追加すると、カウンター値1が返されます)。レガシーアプリでカウンター値にギャップが生じる可能性があるため(可能な場合)、子行の生のカウントに依存したくないことに注意してください。質問を一般的すぎるようにしようとする私の悪い。