का उपयोग कर रिकॉर्ड हटाने में त्रुटि मुझे हाल ही में एक क्लाइंट से एक त्रुटि रिपोर्ट मिली है और मुझे कोई भाग्य हल करने में कोई भाग्य नहीं है। मुझे आशा है कि कोई मुझे गलत समझने के लिए कुछ अंतर्दृष्टि दे सकता है।Linq2SQL
त्रुटि लगता है काफी सरल:
Csla.DataPortalException: DataPortal.Delete में विफल रहा है (System.InvalidOperationException: अनुक्रम System.Linq.Enumerable.SingleOrDefault [TSource] (IEnumerable`1 स्रोत में एक से अधिक तत्व शामिल हैं)
यहाँ (मेरे DataPortal_Delete विधि है, जो एक पैरामीटर के रूप में FileId (पी) लेता है।
private void DataPortal_Delete(SingleCriteria<File, Guid> criteria)
{
using (var ctx = ContextManager<Ronin.Data.RoninDataContext>
.GetManager(Database.ApplicationConnection, false))
{
var data = ctx.DataContext.Files
.Single(row => row.FileId == criteria.Value);
ctx.DataContext.FileSources.DeleteAllOnSubmit(data.FileSources);
ctx.DataContext.Files.DeleteOnSubmit(data);
ctx.DataContext.SubmitChanges();
}
}
पहली बात मैं जाँच अगर वहाँ एक ही FileId के साथ एक और रिकॉर्ड था देखने के लिए गया था, हालांकि प्रथम जा रहा है आरई कुंजी, यह असंभव होना चाहिए)। सभी फाइल आईडी वास्तव में अद्वितीय थे। मैंने क्लाइंट डेटाबेस से कनेक्ट होने वाला एप्लिकेशन लॉन्च किया और रिकॉर्ड को हटाने की कोशिश की और यह बिना किसी समस्या के काम किया। क्लाइंट साइट पर आईटी लड़के ने उपयोगकर्ता द्वारा उठाए गए कार्यों के चरण-दर-चरण स्क्रीनशॉट भेजने के लिए "समस्या चरण रिकॉर्डर" का उपयोग किया। साधारण से कुछ भी नहीं, और जब उसने एक अलग मशीन का इस्तेमाल किया, तो वह बिना किसी त्रुटि के रिकॉर्ड को हटाने में सक्षम था। स्पष्ट रूप से यह तब होता है जब एप्लिकेशन विंडोज 7 में चलाया जाता है।
यह कहा गया कि किसी भी विचार के कारण यह क्या हो सकता है?
फ़ाइलें.FileId उस तालिका पर प्राथमिक कुंजी है? –
क्या आप वाकई इस कोड स्निपेट द्वारा त्रुटि उत्पन्न कर रहे हैं? त्रुटि सिंगलऑर्डफॉल्ट का संदर्भ दे रही है, लेकिन फ़ंक्शन सिंगल का उपयोग कर रहा है। – gfrizzle
फाइल स्रोत नल हैं? यदि ये अलग-अलग वस्तुएं हैं, तो क्या आपको उन्हें हटाने से पहले उन्हें प्राप्त करने के लिए शामिल करना नहीं है? – awright18