วิธีที่ดีที่สุดในการรับค่า 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
แต่นั่นทำให้รู้สึกป้านเล็กน้อยสำหรับคำของ่าย ๆ ฉันพลาดวิธีที่ดีกว่าในการทำสิ่งนี้หรือไม่?
UPDATE: นี่คือเรื่องราวย้อนหลัง: ฉันกำลังพยายามดึงตัวนับสิทธิ์ต่อไปจากตารางลูก (ระบบเดิมอย่าเริ่มฉัน ... ) แถวแรกที่มีสิทธิ์สำหรับผู้ป่วยแต่ละรายคือ 1 เสมอที่สองคือ 2 เป็นต้น (เห็นได้ชัดว่านี่ไม่ใช่คีย์หลักของตารางเด็ก) ดังนั้นฉันเลือกค่าตัวนับที่มีอยู่สูงสุดสำหรับผู้ป่วยแล้วเพิ่ม 1 ตัวเพื่อสร้างแถวใหม่ เมื่อไม่มีค่าย่อยที่มีอยู่ฉันต้องการเคียวรีเพื่อส่งคืน 0 (ดังนั้นการเพิ่ม 1 จะให้ค่าตัวนับเป็น 1) โปรดทราบว่าฉันไม่ต้องการที่จะพึ่งพาจำนวนแถวของแถวรองในกรณีที่แอปรุ่นเก่าแนะนำช่องว่างในค่าตัวนับ (เป็นไปได้) ฉันไม่ดีที่พยายามทำคำถามที่กว้างเกินไป