स्तंभ को एक varbinary (अधिकतम) पर कास्ट करें, जो लिंक से SQL संभाल सकता है। प्रत्येक क्वेरी में ऐसा करने से बचने का एक तरीका सिर्फ CAST(GeographyColumn AS varbinary(max))
के रूप में परिभाषित एक गणना कॉलम जोड़ना है।
एक बार जब आप byte[]
डेटा है, तो आप यह वास्तविक Microsoft.SqlServer.Types.SqlGeography
वर्ग के लिए कन्वर्ट करने के लिए एक छोटी उपयोगिता विधि एक MemoryStream
और IBinarySerialize
का उपयोग कर लिख सकते हैं। Read
/Write
विधियां।
जहां तक मुझे पता है, यह एकमात्र कामकाजी समाधान है यदि आपको भूगोल, ज्यामिति, पदानुक्रम, और किसी भी कस्टम प्रकार सहित किसी भी सीएलआर प्रकार के साथ काम करने की आवश्यकता है - लिंक "उनमें से किसी भी" का समर्थन नहीं करता है। यह सभी बॉयलरप्लेट कोड लिखने में दर्द का थोड़ा सा दर्द है, लेकिन आप कुछ विस्तार विधियों के साथ इसे आसान बना सकते हैं।
आप इस तरह से कॉलम के खिलाफ पूछने में सक्षम नहीं होंगे; हालांकि, आप Linq Dynamic Query Library का उपयोग करके आधे रास्ते पर कॉल कर सकते हैं। आपके पास इंटेलिजेंस या कुछ अन्य लिंक उपहार नहीं होंगे, लेकिन यह अभी भी संगत है और इसलिए हर क्वेरी को हाथ से तैयार करने से बेहतर है, और आप मजबूत टाइप किए गए परिणाम प्राप्त कर सकते हैं।
अपडेट: मुझे थोड़ा क्लीनर समाधान here मिला। आप इस तरह डिजाइनर का उपयोग कर सकते हैं; SqlGeography
रैपर प्रॉपर्टी को आंशिक कक्षा में जोड़ें और SqlBytes
कक्षा के साथ STGeomFromWKB
विधि का उपयोग करें। हालांकि, यह आपको अभी भी इनलाइन क्वेरी क्षमताओं नहीं देगा।
ठीक है, लेकिन यह मुझे स्थानिक प्रश्नों को चलाने में मदद करने के लिए कुछ भी नहीं करेगा? मेरा मतलब है, अगर मैं चाहता हूं तो मुझे अपने प्रश्नों को बनाना होगा, जहां 'एक्स एक्सईटीई वाईईएसईइंटरटेक्ट्स (एक्स) ' –
हां, आप दुर्भाग्य से - लिंकक को जोड़ने के लिए एक बेहतर तरीका भी होंगे एसएलएल को सीएलआर प्रकार को कॉलम के रूप में स्वीकार करने में, यह अभी भी नहीं पता होगा कि SQL फ़ंक्शन कॉल में इसकी विधियों को कैसे मैप करना है। आपकी सबसे अच्छी शर्त एसक्यूएस या यूडीएफ के रूप में एसक्यूएस या यूडीएफ के रूप में इन प्रश्नों को एसक्यूएल सर्वर में लिखना है, लेकिन अगर आपको ऐप के भीतर अपना एसक्यूएल बिल्कुल लिखना होगा, तो आप लिंक डायनामिक क्वेरी लाइब्रेरी का उपयोग करके जो चाहते हैं उसे प्राप्त कर सकते हैं। – Aaronaught
यदि आपने DynamicQuery से परिचित नहीं हैं तो मैंने एक लिंक के साथ उत्तर अपडेट किया है। – Aaronaught