मैं एक डीबी पर एक बहु थ्रेड प्रोसेसर के लॉग को सहेजने की कोशिश कर रहा हूं लेकिन मुझे निम्न त्रुटि मिल रही है: नया लेनदेन अनुमति नहीं है क्योंकि सत्र में अन्य धागे चल रहे हैं।इकाई फ्रेमवर्क नए लेनदेन की अनुमति नहीं है क्योंकि सत्र में चल रहे अन्य थ्रेड हैं, मल्टी थ्रेड
internal bool WriteTrace(IResult result, string message, byte type)
{
SPC_SENDING_TRACE trace = new SPC_SENDING_TRACE(
message,
Parent.currentLine.CD_LINE,
type,
Parent.currentUser.FULLNAME,
Parent.guid);
Context.SPC_SENDING_TRACE.AddObject(trace);
if (Context.SaveChanges(result) == false)
return false;
return true;
}
प्रसंग प्रत्येक थ्रेड के लिए अलग अलग है, लेकिन डीबी के संबंध हमेशा एक ही है:
प्रत्येक चलने मेंमैं इस समारोह की है।
इस समस्या को हल करने का कोई तरीका है?
आप एंड्रिया
अभी भी वही त्रुटि है, मेरे पास मुख्य अनुप्रयोग (बहुभाषी नहीं) के लिए एक और संदर्भ है लेकिन यह मल्टीथ्रेड चल रहा है जब यह लिख नहीं रहा है। क्या यह अभी भी कुछ समस्याएं पैदा कर सकता है? – andrea
@andrea के आपके मुख्य ऐप के लिए कोई अन्य संदर्भ नहीं है, जब आपको अपने डीबी से कुछ अनुरोध करने, जोड़ने, हटाने या अपडेट करने की आवश्यकता होती है, तो संदर्भ बनाने का प्रयास करें, इसे 'उपयोग' के साथ करें जैसा कि मैंने आपको प्रत्येक के जवाब में बताया था ** सिंगल ** लेनदेन और यदि यह ठीक नहीं करता है, तो 'संदर्भ' में 'लॉक' जोड़ें। सेव चेंज() '। उम्मीद है कि मदद करता है, हालांकि मुझे यकीन नहीं है कि यह करता है, तो, शुभकामनाएँ !!! कृपया उत्तर दें;) – ecampver
@andrea मेरी आखिरी टिप्पणी भूल जाओ, पहले मेरे उत्तर अपडेट को आजमाएं। – ecampver