बाहर चेक Dynamic Linq Library ScottGu के ब्लॉग से:
उदाहरण के लिए, नीचे एसक्यूएल वीबी क्वेरी के लिए एक मानक टाइप- सुरक्षित LINQ कि एक नॉर्थविंड डेटाबेस से डेटा प्राप्त करता है और एक ASP.NET GridView नियंत्रण में यह प्रदर्शित करता है:
Dim Northwind As New NorthwindDataContext
Dim query = From q In Northwind.Products Where p.CategoryID = 2 And p.UnitPrice > 3 Order By p.SupplierID Select p
Gridview1.DataSource = query
GridView1.DataBind()
मैं बजाय की तरह तो
Dim Northwind As New NorthwindDataContext
Dim query = Northwind.Products .where("CategoryID=2 And UnitPrice>3") . OrderBy("SupplierId")
Gridview1.DataSource = query
GridView1.DataBind()
सूचना ऊपर क्वेरी अभिव्यक्ति फिर से लिख सकता है LINQ DynamicQuery पुस्तकालय का उपयोग कैसे सशर्त-जहां खंड और सॉर्ट-ऑर्डरबी क्लॉज अब कोड अभिव्यक्तियों के बजाय स्ट्रिंग एक्सप्रेशन लेते हैं। क्योंकि वे देर से तार वाले तार हैं, मैं गतिशील रूप से उन्हें बना सकता हूं। उदाहरण के लिए: मैं अपने एप्लिकेशन का उपयोग करके एक अंतिम उपयोगकर्ता व्यापार विश्लेषक को यूआई प्रदान कर सकता हूं जो उन्हें अपने आप में प्रश्न बनाने के लिए सक्षम बनाता है (मनमाने ढंग से सशर्त खंड सहित)।
क्या यह काम करता है? मुझे यह मिलता है: त्रुटि ओवरलोड रिज़ॉल्यूशन विफल रहा क्योंकि इन तर्कों के साथ कोई ऑर्डर 'ऑर्डरबी' नहीं कहा जा सकता है: प्रकार पैरामीटर के डेटा प्रकार (ओं) को इन तर्कों से अनुमानित नहीं किया जा सकता है। डेटा प्रकार निर्दिष्ट करना स्पष्ट रूप से इस त्रुटि को सही कर सकता है। मैं ओडरबी क्लॉज में पैरामीटर विकल्प के रूप में 'स्ट्रिंग' नहीं देख सकता। – JohnnyBizzle
@ जॉनी बिज़ल - यह काम करता है। मैं इसे कई परियोजनाओं में उपयोग करता हूं। दो बार जांचें कि गतिशील.cs आपकी प्रोजेक्ट में है और आपने इसे अपने उपयोग घोषणाओं में ठीक से संदर्भित किया है। – Geoff
यह बहुत अच्छा है। मुझे कभी नहीं पता था कि आप ऐसा कर सकते हैं। यह उन्नत खोज क्वेरी बिल्डिंग के साथ मेरी समस्या का समाधान करेगा। अच्छा एक +1 – ppumkin