2009-05-15 7 views
11

एक लिंक ऑब्जेक्ट के लिए अद्यतन करने का प्रयास करते समय मुझे निम्न त्रुटि प्राप्त होती है।एसक्यूएल त्रुटि एसक्यूएल एसक्यूएल एनटीएक्स्ट, टेक्स्ट, एक्सएमएल, या इमेज की तुलना नहीं करता है?

"SQL सर्वर NText, टेक्स्ट, एक्सएमएल, या छवि डेटा प्रकारों की तुलना को संभाल नहीं करता है।"

डेटाबेस में एक फ़ील्ड है जो टेक्स्ट फ़ील्ड है क्योंकि यह एक स्ट्रिंग को पकड़ने जा रहा है जो 32kb जितना हो सकता है।

क्या मुझे डेटा प्रकार बदलना चाहिए या क्या मैं लिंक में चारों ओर एक काम कर सकता हूं?

संपादित

मैं समर्थन एसक्यूएल 2000 है, इसीलिए उसे एक पाठ क्षेत्र है।

उत्तर

7

इसे एक VARCHAR (अधिकतम) में बदलें - इससे जीवन अधिक आसान हो जाएगा।


संपादित

पूर्ण पाठ अनुक्रमण तुम यहाँ मदद मिल सकती है, यकीन नहीं करता है, तो एसक्यूएल 2000 आप तो अपने पाठ स्तंभ पर "खोज" करने की अनुमति होगी

+0

एसक्यूएल 2000 के बारे में क्या मुझे समर्थन करना है? –

+0

अगर मैं कॉलम के प्रकार को नहीं बदल सकता तो क्या होगा? मुझे अभी भी यह अपवाद मिल रहा है भले ही UpdateCheck = UpdateCheck। प्रश्न में कॉलम के लिए (NText टाइप करें)। कोई अन्य समाधान? यह केवल तब होता है जब डेटा अपडेट किया जाता है - यदि फ़ील्ड अद्यतन से पहले शून्य था तो कोड ठीक से निष्पादित होता है। धन्यवाद। डेविड। –

+0

पूर्ण टेक्स्ट इंडेक्सिंग केवल विभिन्न पूर्ण टेक्स्ट पूर्वानुमानों का उपयोग करने की अनुमति देता है, 'कंटेनस' इत्यादि। एमएसएसक्यूएल 2k में '=', '! =', आदि के साथ इन प्रकार के कॉलम की तुलना करने के लिए संभव नहीं है – Donnie

8

आप हमेशा पर toString() का उपयोग कर सकते प्रश्न में स्ट्रिंग जो क्लाइंट साइड तुलना को मजबूर करेगी।

+0

यह सही दृष्टिकोण है .... – RameshVel

+0

मेरे मामले में मेरे पास एक XML डेटा प्रकार फ़ील्ड था और मेरे मॉडल में कॉलम पर अद्यतन चेक विशेषता को बदलकर त्रुटि को हल करने में सक्षम था .. [कॉलम (संग्रहण = "_CustomAttributes", AutoSync = AutoSync.OnInsert, DbType = "xml", UpdateCheck = UpdateCheck.Never)] – ZimSystem

1

आप अद्यतन जांच को मैन्युअल रूप से .dbml में "कभी नहीं" में बदल सकते हैं।

+1

कृपया प्रासंगिक बिट्स को शामिल करने और विशिष्ट होने का प्रयास करें। – NeverHopeless

1

या आप कोड में UpdateCheck सेट कर सकते हैं: - यहां तक ​​कि लोगों को कि आप अद्यतन नहीं करते

 [Column(Name = "SomeXml", Storage = "_someXml", CanBeNull = true, UpdateCheck = UpdateCheck.Never)] 
    public System.Xml.Linq.XDocument SomeXml { get { return _someXml; } set { _someXml = value; } } 
0

आप NVARCHAR (मैक्स) को सभी तालिका के क्षेत्र बदलना होगा।

संबंधित मुद्दे