रद्द करना मैं WinForms एप्लिकेशन के लिए एक क्वेरी मैनेजर लिखने की प्रक्रिया में हूं, अन्य बातों के साथ, उपयोगकर्ता को वास्तविक समय के खोज परिणामों को वितरित करने में सक्षम होना चाहिए क्योंकि वे एक प्रश्न दर्ज कर रहे हैं (Google के लाइव परिणाम सोचें, हालांकि स्पष्ट रूप से वेब के बजाय मोटी क्लाइंट वातावरण में)। चूंकि परिणामों को उपयोगकर्ता प्रकारों के रूप में पहुंचने की आवश्यकता है, इसलिए खोज अधिक से अधिक विशिष्ट हो जाएगी, इसलिए यदि मैं अभी भी निष्पादित कर रहा हूं, तो उपयोगकर्ता एक और प्रश्न पूछने में सक्षम होना चाहता हूं, जबकि उपयोगकर्ता ने अधिक विशिष्ट जानकारी दर्ज की है (परिणाम बस छोड़ दिया, वैसे भी)।एक इकाई फ्रेमवर्क क्वेरी
यदि यह साधारण ADO.NET थे, मैं स्पष्ट रूप से सिर्फ DbCommand.Cancel
समारोह इस्तेमाल कर सकते हैं और इसके साथ किया जाना है, लेकिन हम अपने डेटा पहुँच के लिए EF4 उपयोग कर रहे हैं और वहाँ एक रद्द करने के लिए एक स्पष्ट तरीका हो प्रतीत नहीं होता है क्वेरी। इसके अतिरिक्त, प्रतिबिंबक में System.Data.Entity खोलना और EntityCommand.Cancel
पर देखकर docs के बावजूद एक निराशाजनक खाली विधि निकाय दिखाता है, यह दावा करते हुए कि यह इसे प्रदाता कमांड के संबंधित Cancel
फ़ंक्शन पर भेज देगा।
मैंने केवल मौजूदा क्वेरी को चलाने और नई खोज को निष्पादित करने के लिए एक नए संदर्भ को कताई करने के लिए विचार किया है (और केवल एक बार समाप्त होने के बाद मौजूदा क्वेरी का निपटान), लेकिन मुझे एक क्लाइंट के विचार को पसंद नहीं है खुले डेटाबेस कनेक्शन की एक भीड़ समानांतर क्वेरी चल रही है जब मैं केवल हालिया परिणामों के परिणामों में रूचि रखता हूं।
यह सब मुझे विश्वास करने के लिए प्रेरित कर रहा है कि डेटाबेस में भेजे जाने के बाद ईएफ क्वेरी को रद्द करने का कोई तरीका नहीं है, लेकिन मुझे उम्मीद है कि यहां कोई व्यक्ति कुछ अनदेखा कर सकता है जिसे मैंने अनदेखा कर दिया है।
टीएल/डीआर संस्करण: क्या वर्तमान में निष्पादित एक ईएफ 4 क्वेरी को रद्द करना संभव है?
मैं MSDN मंच पर इस समस्या के बारे में सवाल पूछा है:: एक और दृष्टिकोण केवल वर्तमान क्वेरी को रोकने के लिए अंदर गणन है http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/ d5ea8036-73e5-4566-9407-fa7a6a5fca3c यह मूल प्रश्न जुड़ा हुआ है।उम्मीद है कि एमएस से कोई दूसरा समाधान प्रदान करेगा। –