इस परिदृश्य पर विचार करें।समानता द्वारा कैशिंग LINQ अभिव्यक्ति
आपके पास एक भंडार है जो कुछ कॉल करने की अनुमति देता है। ये कॉल LINQ का उपयोग करते हैं और लौटाए गए डेटा की मात्रा के संदर्भ में अपेक्षाकृत महंगे हो सकते हैं।
यह देखते हुए कि मेरे मामले में, डेटा पुराना होने पर यह अत्यधिक खराब नहीं है - कोई कैश लागू कर सकता है, ताकि बड़ी और महंगी क्वेरी हर कॉल को निष्पादित नहीं की जा सके। अरे, हम यह निर्धारित करने के लिए कुछ कैशिंग नीतियों को भी कार्यान्वित कर सकते हैं कि उस क्वेरी को समय या उपयोग के आधार पर फिर से निष्पादित करना कब होगा।
जिस चीज़ को मैं अपने सिर को लपेटने की कोशिश कर रहा हूं, वह कैश में कुंजी कैसे है। एक तरीका यह कहना होगा कि:
"querytype1" = Particular LINQ expression
"querytype2" = Particular LINQ expression
और उसके बाद एक सरल स्ट्रिंग द्वारा कैश को कुंजी करें। लेकिन, हम LINQ कर रहे हैं, क्या हम संभावित रूप से LINQ अभिव्यक्ति द्वारा कैश को कुंजी कर सकते हैं? मैं प्रदर्शन संकेतों को समझता हूं लेकिन क्या यह तुलना करने के लिए वैसे भी है कि दो LINQ अभिव्यक्ति समान हैं या नहीं?
आप LINQ अभिव्यक्ति की तुलना कैसे करेंगे? क्या वस्तु आईसीओपरपेबल लागू करती है? –
@KyleC यह मेरा सवाल है। क्या यह पता लगाना संभव है कि दो LINQ अभिव्यक्तियां समान रूप से समान हैं (परिणाम सेट के बावजूद) –
आप आलसी कक्षा और पैटर्न को देखना चाह सकते हैं: http://msdn.microsoft.com/en-us/library/dd642331।एएसपीएक्स –