2010-10-27 8 views
6

मेरे पास एक सुविधा के लिए बाद में उपयोगकर्ता की खोज को सहेजने में सक्षम होने का अनुरोध है।बाद में उपयोग के लिए LINQ क्वेरी को सहेजने का सबसे आसान तरीका क्या है?

मक्खी पर अभी मैं निर्माण कर रहा हूँ LINQ बयान क्या उपयोगकर्ता निर्दिष्ट किया है पर आधारित है।

तो मैंने सोचना शुरू कर दिया, क्या उपयोगकर्ता ने केवल उस प्रश्न को लेना आसान तरीका है जिसे उपयोगकर्ता बनाया गया है, और इसे कहीं भी जारी रखता है, अधिमानतः मेरा डेटाबेस, ताकि मैं इसे बाद में पुनर्प्राप्त कर सकूं?

वहाँ JSON XML के रूप में क्वेरी बने या शायद, और फिर बाद में क्वेरी के पुनर्गठन के कुछ रास्ता नहीं है?

उत्तर

3

कभी भी इस से पहले किया है, लेकिन मैं इस विचार को मिला है:

सीधे अपने डेटाबेस के खिलाफ क्वेरी खत्म हो जाने पर यदि आप इसे एक OData endpoint के खिलाफ चलाने के लिए थे बजाय, आप सकता है क़यास का URL निकाल जो क्वेरी स्ट्रिंग के रूप में उत्पन्न होता है, और बाद में उपयोग के लिए उस यूआरएल को बचाता है। चूंकि ओडाटा के पास पहले से ही एक अच्छी तरह से बाहर की कल्पना है, इसलिए आप अन्य लोगों के श्रम से लाभ प्राप्त कर पाएंगे।

+0

यह आधा बुरा विचार नहीं है। तो फिर मुझे अपने सर्वर पर ओडाटा एंडपॉइंट बनाने की आवश्यकता होगी, और केवल सहेजी गई क्वेरी के लिए मेरी वेबसाइट पर उपभोग करें? क्या यह विचार है? – Joseph

+0

हाँ, यह विचार है। साफ बात यह है कि एंडपॉइंट उतना ही सार्वजनिक होगा जितना आप चाहते हैं, और आप इसे अपने मॉडल का केवल एक सबसेट शामिल करने के लिए प्रतिबंधित कर सकते हैं। दिलचस्प मेट्रिक्स खोजने के लिए हम लिंककैड के साथ स्टैक ओवरव्लो से कनेक्ट कर सकते हैं, वैसे ही आप कुछ ग्राहकों या व्यावसायिक विश्लेषकों को अपने डेटा में एक लचीला, क्वेरी करने योग्य दृश्य सक्षम कर सकते हैं। साथ ही, अतिरिक्त परत बनाकर, भले ही आपका अंतर्निहित मॉडल बदल जाए, आप यह सुनिश्चित कर सकते हैं कि ओडाटा एंडपॉइंट का मॉडल वही रहता है। – StriplingWarrior

0

अभिव्यक्ति वर्ग पर एक नजर डालें। यह आपको एक क्वेरी को पूर्व-संकलित करने की अनुमति देगा। हालांकि बेहतर प्रदर्शन के लिए डीबी के बाद के उपयोग के लिए इसे जारी रखना संदिग्ध है।

+0

कुछ System.Data.Linq.CompiledQuery की तरह या आप कुछ और की चर्चा करते हुए थे? – Joseph

3

मैं यहाँ एक डोमेन विशिष्ट वस्तु के साथ जाना चाहते हैं, भले ही इस तरह के उपहार मौजूद था - जब आप LINQ में धारावाहिक प्रश्नों और आपके मौलिक मॉडल परिवर्तनों को सहेजने, अमान्य हर किसी के प्रश्नों सहेज लिया जाता है क्या होता है। अपने स्वयं के डेटा प्रारूप का उपयोग करके आप इसे कुछ हद तक ढाल देना चाहिए।

+0

मैं अपने अंतर्निहित मॉडल बदलने के बारे में वास्तव में चिंतित नहीं हूं। मैं यह नहीं कह रहा कि यह एक वैध चिंता नहीं है, लेकिन मेरे मामले में मुझे अपने मॉडल बदलने के बारे में चिंता करने की ज़रूरत नहीं है। – Joseph

+0

सीरियलाइजिंग प्रश्नों के लिए आपके मॉडल के बारे में बात नहीं कर रहा है, बल्कि (शायद किसी भी तरह मौजूद नहीं है)। फ्रेमवर्क काम के रूप में आंतरिक रूप से वहां जो भी जीवन बदल जाएगा, मैं शर्त लगाऊंगा। –

0

मैं के रूप में मैं PDC10 पर this presentation घड़ी इस लिख रहा हूँ। 1 घंटे के निशान के ठीक बाद, वह दिखाता है कि उसने अभिव्यक्ति पेड़ों के लिए JSON serializer कैसे बनाया है। आपको वह दिलचस्प लगेगा।

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