हां, अन्य तरीके हैं (वास्तव में कुछ वास्तव में), लेकिन मैं दृढ़ता से सुझाव देता हूं कि आप उनमें से किसी का भी उपयोग न करें। इस मामले को संभालने का सबसे अच्छा विकल्प एक नया कस्टम प्रकार बनाना है जो आपके पास मौजूद डेटा पर है। यह अब तक का सबसे रखरखाव विकल्प होगा।
बेनामी प्रकार विशेष रूप से एक विधि के दायरे में उपयोग किए जाने के लिए डिज़ाइन किए गए थे। आप अन्यथा करने के लिए कार्यक्षमता के डिजाइन से लड़ रहे हैं, और इसलिए करना मुश्किल होगा, आप संभवतः इंटेलिजेंस खो देंगे, प्रदर्शन की संभावना अधिकतर होगी, और खराब साबुन को वापस आने और कोड को बनाए रखने की आवश्यकता होगी पता नहीं है कि क्या हो रहा है या क्वेरी को कैसे समायोजित किया जाए।
वैकल्पिक समाधानों के साथ प्राथमिक समस्या यह है कि आप संकलन समय की जांच खो देते हैं। यदि क्वेरी पैरामीटर को हटा देती है, तो एक पैरामीटर जोड़ता है, एक प्रकार बदलता है, आदि जो कोड इसका उपयोग करता है उसे जानने का कोई तरीका नहीं है। किसी प्रश्न का उपयोग करने के लिए कोड लिखते समय आपके पास यह जानने का कोई तरीका नहीं है कि डेटा के सभी टुकड़े क्या हैं, उनके प्रकार क्या हैं, चर के नाम क्या हैं आदि। आपको चर नामों में टाइपो के बारे में चिंता करने की आवश्यकता है जो संकलक कर सकते हैं पकड़ नहीं है, और आपको क्वेरी उत्पन्न करने वाली विधि के आंतरिक कार्यों को देखने की आवश्यकता होगी। आप इसे ब्लैक बॉक्स या अमूर्तता के रूप में पेश करने की क्षमता खो देते हैं, जो महत्वपूर्ण है।
आप समय और प्रयास यह इन कस्टम प्रकार बनाने के लिए ले जाएगा के बारे में चिंतित हैं, वहाँ स्वचालित उपकरणों डेटाबेस तालिकाओं या अन्य स्रोतों के आधार पर इस तरह के वर्गों पैदा करने के लिए डिज़ाइन की गई हैं कर रहे हैं।
+1, मुझे कस्टम प्रकार बनाने के लिए _not_ बनाने का कोई कारण नहीं दिखता है। –