मेरे पास एक इकाई है, चलो इसे CommonEntity
पर कॉल करें जिसमें कई अन्य इकाइयों में एक विदेशी कुंजी के रूप में उपयोग की जाने वाली प्राथमिक कुंजी है। चूंकि आवेदन विकसित किया गया है, ये लिंक बढ़ते रहेंगे।इकाई फ्रेमवर्क: विदेशी कुंजी उपयोग के लिए किसी इकाई के सभी रिश्तों की जांच करें
मुझे यह देखने का एक तरीका चाहिए कि CommonEntity
सुरक्षित रूप से हटाया जा सकता है (यानी यह किसी अन्य संस्था द्वारा उपयोग नहीं किया जाता है)।
मुझे पता है मैं
if(!ce.EntityA.Any() && !ce.EntityB.Any() ... && !ce.EntityN.Any())
{
//Delete
}
कर सकते हैं, लेकिन मैं एक तरह से स्वचालित रूप से संबंधों के सभी की जाँच करने के लिए आशा करती हूं कि, जैसा कि मैंने वापस आने के लिए करने का विचार प्यार नहीं करते और इस कोड को परिवर्तित मैन्युअल रूप से हर बार जब हम एक नया रिश्ता जोड़ते हैं। शायद ईएफ 4 + में कुछ ऐसा है जो मुझे पता नहीं है?
मैंने सोचा कि ऑब्जेक्ट को बस कोशिश करने और हटाने के लिए लेनदेन के दायरे का उपयोग करना संभव हो सकता है और अगर यह विफल हो जाता है तो इसे वापस रोल करें, लेकिन मुझे यकीन नहीं था कि इस दृष्टिकोण के साथ कोई प्रतिकूल दुष्प्रभाव हैं या नहीं।
क्या कोई बेहतर तरीका है?
संपादित करें: लगता VS2012 तरह EF5 इस्तेमाल किया गया है, भले ही परियोजना नेट 4 है, इसलिए यह Pocos साथ मॉडल हालांकि यह एक डीबी से बनाया गया था बनाया गया है।
यदि मैं इसे असफल होने देता हूं, तो क्या यह स्वचालित रूप से लेनदेन के दायरे के बिना किसी भी सफल कैस्केडिंग को वापस लाएगा? – BenC3
उत्तर मिला - SaveChanges() एक लेनदेन का उपयोग करता है, इसलिए किसी भी विफलता को वापस ले जाया जाएगा: http://msdn.microsoft.com/en-us/library/bb336792.aspx – BenC3
यदि आप अपनी संस्थाओं को खुले रखते हैं तो बिल्कुल अच्छा नहीं है ! – bytecode77