मुझे लगता है कि मेरे पास आज मेरा बेवकूफ सिर है: मेरे पास लगभग 80,000 पंक्तियों और एक डीबी तालिका (एल 2 ई/ईएफ 4) युक्त एक पीओसीओ प्रकार का एक आईनेमरेबल है जिसमें पंक्तियों का सबसेट होता है जहां "त्रुटि/अंतर बस को अद्यतन करने, त्रुटि में "और फिर पूरा परिणाम सेट अद्यतन करने के लिए प्रयास करता है"आईन्यूमेरेबल <> अपडेट नहीं कर रहा है में ऑब्जेक्ट अपडेट करें?
निम्नलिखित कोड अलग VSACode के हो जाता है (के बारे में 5000 पंक्तियाँ है, लेकिन अक्सर लगभग 150 अलग प्रविष्टियों * मजबूत पाठ * देने के लिए बार-बार) " पंक्तियां जो मेल खाते हैं ... लेकिन यह काम नहीं करती है!
क्या मूर्खता मैंने किया है ?!
var vsaCodes = (from g in db.GLDIFFLs
select g.VSACode)
.Distinct();
foreach (var code in vsaCodes)
{
var hasDifference = results.Where(r => r.VSACode == code);
foreach (var diff in hasDifference)
diff.Difference = true;
}
var i = results.Count(r => r.Difference == true);
इस कोड के बाद, मैं = 0
मैं भी कोशिश की है:
foreach (var code in vsaCodes)
{
results.Where(r => r.VSACode == code).Select(r => { r.Difference = true; return r; }).ToList();
}
मैं कैसे "परिणाम" केवल मिलान अंतर गुण सेट करने के लिए अद्यतन कर सकते हैं?
मेरा (स्पष्ट रूप से बिल्कुल सही नहीं) समझने के लिए ToList() का उपयोग करने से बचने के लिए था जब तक कि आपको वास्तव में इसकी आवश्यकता नहीं होती ... मुझे लगता है कि यह "वास्तव में इसकी आवश्यकता है" स्थिति है? त्वरित क्यू? क्या सूची को मूर्त रूप देने के लिए कथन/प्रश्नों की मेरी श्रृंखला में टोलिस्ट() को कॉल करना बेहतर है? यदि मैं नहीं करता, तो क्या यह हर बार डीबी से पूछताछ करेगा? – BlueChippy
@ ब्लूशिपी: आमतौर पर आपको जितनी देर हो सके ToList का उपयोग करना चाहिए, ताकि अधिकांश क्वेरी (विशेष रूप से आउटपुट फ़िल्टर करने वाले हिस्सों में) डेटाबेस पर निष्पादित हो। –
धन्यवाद जॉन, अनुमान है कि मैंने इस ToList() को थोड़ा छोटा();) – BlueChippy