मैं SQL सर्वर 2005 का उपयोग कर रहा है, एक केस संवेदी डेटाबेस के साथ ..Linq: Ntext खेतों पर ToLower() का उपयोग कर
एक खोज समारोह में, मैं संस्थाओं के लिए एक Linq बनाने की जरूरत (L2E) क्वेरी एक "कहाँ" खंड है कि इन नियमों के साथ डेटाबेस में डेटा के साथ कई तार की तुलना के साथ: के रूप में स्ट्रिंग के शामिल आसान() विधि में अनुमति दी है:
- तुलना एक "शामिल" मोड, सख्त नहीं की तुलना L2E
- तुलना केस असंवेदनशील होना चाहिए: मैं एक असंवेदनशील तुलना करने के लिए दोनों तत्वों पर ToLower() का उपयोग करता हूं।
यह सब वास्तव में अच्छा प्रदर्शन करता है, लेकिन मैं निम्नलिखित अपवाद में भाग: मेरी क्षेत्रों में से एक पर "तर्क डेटा प्रकार ntext कम समारोह के तर्क 1 के लिए अमान्य है"।
ऐसा लगता है कि फ़ील्ड एक NText फ़ील्ड है और मैं उस पर एक ToLower() नहीं कर सकता।
मैं उस NText फ़ील्ड पर केस असंवेदनशील कंटेनर() करने में सक्षम होने के लिए क्या कर सकता हूं?
हम ... मैं क्या आप मुझे बता कि ToLower() का उपयोग गलत है लगता है, लेकिन मैं कोई अन्य समाधान है के रूप में: - मिलान बदलने बहुत ज्यादा काम और जोखिम बस कुछ खोज मापदंड के लिए है - बराबर और StartsWith जीता यहां आवश्यकता के अनुरूप नहीं है। मैं NText फ़ील्ड को NVarchar में परिवर्तित करने और उपयोगकर्ता इनपुट को सीमित करने के बारे में सोच रहा हूं ... मेरे मामले में प्रदर्शन वास्तव में महत्वपूर्ण नहीं है। –
मैं आपको यह बताने की कोशिश कर रहा हूं कि विकल्प क्या हैं, यह नहीं बताते कि आपके लिए कुछ आदर्श विकल्प मौजूद हैं .... –