2012-05-09 25 views
7

में सहेजने वाले परिवर्तन को अपरिवर्तित करने के कारण फ़ील्ड प्राप्त करना मैंने एमवीसी 3 में एक आरईएसटी एपीआई बनाया है और एक चीज जो मुझे करने की ज़रूरत है, एक अद्यतन या निर्माण ऑपरेशन विफल होने पर एक वर्णनात्मक संदेश लौटाता है।एंटिटी फ्रेमवर्क

"The update operation failed while creating the customer object." जैसे संदेश पर्याप्त नहीं हैं।

मेरा अगला सोचा अपवाद जो कुछ इस तरह रिटर्न से बाहर संदेश मिल गया था:

The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_Business_Category". The conflict occurred in database "MyDb_Dev", table "dbo.Category", column 'CategoryID'. 
The statement has been terminated. 

कौन सा बहुत ज्यादा जानकारी हो रहा है। मैं अपवाद संदेश से column "CategoryID" को पार्स कर सकता हूं ... सुनिश्चित नहीं है कि यह विश्वसनीय है या नहीं।

क्या फ़ील्ड के लिए विशेषताओं को सेट करना संभव है ताकि जब वे असफल हो जाएं तो मैं उन फ़ील्ड त्रुटि विवरण प्राप्त कर सकता हूं? मैं सुझावों के लिए खुला हूं।

उत्तर

0

प्लेस एक कोशिश पकड़ ब्लॉक में अपमानजनक कोड। पकड़ अनुभाग में कहीं ब्रेकपॉइंट सेट करें। फिर मॉडलस्टेट नामक एक घड़ी आइटम जोड़ें।

ModelState.IsValid आपको बताएगा कि मॉडल मान्य है (या गलत है)।

ModelState.Keys आपको मॉडल के फ़ील्ड की सूची दिखाएगा।

ModelState.Values ​​ आपको उन संबंधित क्षेत्रों में से प्रत्येक के लिए डेटा मान दिखाएगा। प्रत्येक में ड्रिल करें और आप त्रुटि नोड देखेंगे कि उस डेटा आइटम में कितनी त्रुटियां हैं। 0 से अधिक त्रुटियों वाले एक की तलाश करें। इसके सूचकांक का एक नोट बनाएं, और उसके बाद मॉडलस्टेट.केस [इंडेक्स नोटेड] पर जाएं कि यह देखने के लिए कि कौन सा फ़ील्ड त्रुटि उत्पन्न कर रहा है।

ईमानदार होने के लिए, एक बार जब आप इसे प्राप्त कर लेंगे, तो आपके पास इस तरह की किसी भी त्रुटि को हल करने के लिए आवश्यक सारी जानकारी होगी। मैं इसे आप को छोड़ दूंगा।

संबंधित मुद्दे