मैं अपनी एक परियोजना में निम्नलिखित कोड का उपयोग कर रहा हूं:
using (var _context = new DBContext(new DbContextOptions<DBContext>()))
{
try
{
_context.MyItems.Remove(new MyItem() { MyItemId = id });
await _context.SaveChangesAsync();
}
catch (Exception ex)
{
if (!_context.MyItems.Any(i => i.MyItemId == id))
{
return NotFound();
}
else
{
throw ex;
}
}
}
इस तरह, यह डेटाबेस को दो बार केवल तभी क्वेरी करेगा जब निर्दिष्ट आईडी के साथ आइटम को हटाने की कोशिश करते समय कोई अपवाद होता है। फिर यदि आइटम नहीं मिला, तो यह एक सार्थक संदेश देता है; अन्यथा, यह केवल अपवाद को वापस फेंक देता है (आप इसे अलग-अलग अपवाद प्रकारों के लिए अलग-अलग कैच ब्लॉक का उपयोग करके अपने मामले में अधिक फिट तरीके से संभाल सकते हैं, यदि ब्लॉक आदि का उपयोग करके अधिक कस्टम चेक जोड़ें)।
[मैं एमवीसी .Net कोर / .नेट कोर प्रोजेक्ट में एंटिटी फ्रेमवर्क कोर के साथ इस कोड का उपयोग कर रहा हूं।]