पर कॉल करें, मैं पृष्ठ पर उत्पादों की पहले लोड की गई सूची से अलग-अलग रंगों की सूची लोड करने का प्रयास कर रहा हूं। तो उत्पादों मैं यह करने में खींचने के लिए:इकाई फ्रेमवर्क AsNoTracking ब्रेक को अलग-अलग
var products = Products
.Include(p => p.ProductColor)
.ToList();
तो मैं उत्पादों पर उन्हें कुछ प्रसंस्करण कर मैं अलग उत्पादों के द्वारा प्रयुक्त रंग के सभी की एक सूची प्राप्त करना चाहते हैं, तो मैं ऐसा करते हैं:
var colors = products
.Select(p => p.ProductColor)
.Distinct();
और यह बहुत अच्छा काम करता है, हालांकि अगर मैं मूल उत्पाद कॉल में .AsNoTracking()
पर कॉल जोड़ता हूं, तो अब मुझे उत्पाद सूची में प्रत्येक प्रविष्टि के लिए मेरी रंग सूची में एक प्रविष्टि मिलती है।
इन दोनों में कोई अंतर क्यों है? क्या एंटीटी फ्रेमवर्क ऑब्जेक्ट्स को ट्रैक करने से रोकने का कोई तरीका है (वे केवल पढ़ने के लिए उपयोग किए जा रहे हैं) और वांछित व्यवहार प्राप्त करने के लिए?
यहाँ AsNoTracking()
var products = Products
.AsNoTracking()
.Include(p => p.ProductColor)
.ToList();
जो आपने पोस्ट किया है उससे .एएसएनओट्रैकिंग को ठीक काम करना चाहिए, जहां आप इसे अपनी क्वेरी –
@LukeMcGregor में डाल रहे हैं, मैंने अपनी क्वेरी के साथ प्रश्न को अपडेट किया है .एएसएनओट्रैकिंग – heavyd
क्या यह सिर्फ एक टाइपो है क्वेरी टोलिस्ट के साथ समाप्त होती है और इसमें कोई विशिष्ट नहीं है? –