从可能不返回任何行的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
但对于这样一个简单的请求,这感觉有点迟钝.我错过了更好的方法吗?
更新:以下是背景故事:我正在try 从子表中检索下一个资格计数器(遗留系统,不要让我开始…).每个患者的第一个合格行始终为1,第二个为2,以此类推(显然这不是子表的主键).因此,我为患者 Select 最大现有计数器值,然后向其添加1以创建新行.当没有现有的子值时,我需要查询返回0(因此添加1将给我一个计数器值1).请注意,我不想依赖子行的原始计数,以防遗留应用程序在计数器值中引入间隙(可能).我的缺点是试图让问题过于笼统.