2013-08-08 7 views
11

के बजाय LINQ क्वेरी सिंटैक्स का उपयोग करके AsNoTracking मुझे प्रदर्शन में सुधार के लिए मेरे LINQ चुनिंदा प्रश्नों के साथ AsNoTracking का उपयोग करने में रूचि है। मैं कोड प्रथम के साथ इकाई फ्रेमवर्क 5 का उपयोग कर रहा हूँ।विधि सिंटैक्स

हालांकि, मेरे सभी प्रश्न LINQ क्वेरी सिंटैक्स का उपयोग करके लिखे गए हैं और सभी AsNoTracking उदाहरण विधि वाक्यविन्यास का उपयोग करके दिखाए जाते हैं। मुझे पता है कि AsNoTracking विधि वाक्यविन्यास के लिए बनाया गया था, लेकिन मैं क्वेरी सिंटैक्स के साथ एक ही चीज़ कैसे प्राप्त करूं?

+0

AsNoTracking प्रदर्शन में सुधार नहीं करता है, क्योंकि यह एफई संपर्क की सुविधा देता है प्रत्येक कॉल पर डेटा स्रोत। इसलिए ट्रैकिंग भी कैशिंग और प्रदर्शन में सुधार कर रही है। – Robert

+0

हाय रॉबर्ट, यह दिलचस्प है क्योंकि मैंने कई लेख पढ़े हैं जो AsNoTracking() को इंगित करते हैं कि किसी भी अद्यतन करने की आवश्यकता के बिना SELECT का उपयोग करते समय प्रदर्शन सुधार प्रदान करते हैं। यानी http://blog.staticvoid.co.nz/2012/4/2/entity_framework_and_asnotracking – Mitch

+0

ठीक है, सटीक होने के लिए: पहले से नहीं लाया गया डेटा लाने पर AsNoTracking वास्तव में तेज़ है, क्योंकि इसे जांचने की आवश्यकता नहीं है कि क्या वांछित डेटा पहले से मौजूद है (जो निश्चित रूप से सबसे तेज़ होगा)। – Robert

उत्तर

18

आप DbSet करने के लिए AsNoTracking() लागू होते हैं:

+0

बहुत धन्यवाद, यही वह जवाब था जिसे मैं ढूंढ रहा था! – Mitch

1

प्रश्न वाक्यविन्यास को संकलक द्वारा विधि वाक्यविन्यास के साथ प्रतिस्थापित किया गया है, इसलिए अंत में कोई अंतर नहीं है।

+0

मैंने अपने क्वेरी सिंटैक्स के साथ AsNoTracking() का उपयोग करने का प्रयास किया है, लेकिन यह इंटेलिजेंस पर एक विकल्प के रूप में भी दिखाई नहीं देता है। – Mitch

+0

आगे के विचारों पर, शायद मैं इसे सही तरीके से उपयोग नहीं कर रहा हूं या मुझे पुस्तकालय गुम है? यानी var परिणाम = (सीटीएक्स में व्यक्ति से। लोग चुनिंदा व्यक्ति) .एसएनओट्रैकिंग()। ToList() – Mitch

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