Satır döndürmeyen bir LINQ sorgusundan Max değerini almanın en iyi yolu nedir? Sadece yaparsam
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter).Max
Sorgu hiçbir satır döndürmediğinde bir hata alıyorum. Yapabilirim
Dim x = (From y In context.MyTable _
Where y.MyField = value _
Select y.MyCounter _
Order By MyCounter Descending).FirstOrDefault
ama bu böylesine basit bir istek için biraz küstahlık hissi veriyor. Bunu yapmanın daha iyi bir yolunu mu kaçırıyorum?
GÜNCELLEME: İşte arka hikaye: Bir alt tablodan bir sonraki uygunluk sayacını almaya çalışıyorum (eski sistem, beni başlatma ...). Her hasta için ilk uygunluk sırası her zaman 1'dir, ikincisi 2'dir, vb. (Açıkçası bu alt tablonun birincil anahtarı değildir). Bu nedenle, bir hasta için mevcut maksimum sayaç değerini seçiyorum ve sonra yeni bir satır oluşturmak için buna 1 ekliyorum. Mevcut bir alt değer olmadığında, 0 döndürmek için sorguya ihtiyacım var (böylece 1 ekleyerek bana 1 sayaç değeri verecek). Eski uygulama sayaç değerlerinde boşluklar (olası) içeriyorsa, alt satırların ham sayısına güvenmek istemediğimi unutmayın. Soruyu çok genel yapmaya çalıştığım için üzüldüm.