में परिणामसेट लौटने से पहले रिकॉर्ड के अस्तित्व की जांच करें, मैं डेटा को पुनर्प्राप्त करने का प्रयास करने से पहले एक रिकॉर्ड मौजूद है या नहीं, यह सत्यापित करने के लिए मेरे मानक जंक तरीके को प्रतिस्थापित करने के लिए एक सरल समाधान की तलाश में हूं। वर्तमान में, जब भी अपने तरीकों में से एक कहा जाता है, मैं कुछ के प्रभाव के लिए करते हैं ...LINQ से SQL
private Record DoSomething(int id)
{
if(data.Records.Count(q=>q.Id==id) > 0)
{
return data.Records.First(q=>q.Id==id);
}
return null;
}
... जहां मैं हमेशा रिकॉर्ड की गिनती की जांच एक रिकार्ड के अस्तित्व निर्धारित करते हैं। डेटाबेस को दो बार कॉल किए बिना, ऐसा करने का एक और "सुरुचिपूर्ण" तरीका होना चाहिए। क्या उधर रास्ता है?
मुझे लगता है कि यदि एक से अधिक रिकॉर्ड लौटा दिया जाता है SingleOrDefault एक अपवाद फेंक देते हैं। चूंकि यह एक आईडी क्वेरी की तरह दिखता है, यह संभवतः यह मानना सुरक्षित है कि सिंगलऑर्डिफॉल्ट ठीक रहेगा, लेकिन फर्स्टऑरडिफॉल्ट मुझे लगता है कि अधिक सामान्य है। –
'कोई भी (आर => आर.आईडी == आईडी) 'पसंदीदा है क्योंकि यह अधिक कुशल है (परिणामस्वरूप' COUNT' के बजाय' EXISTS' होगा)। – JulianR