2010-07-12 5 views
8

पर छंटनी करता है मेरे पास एक संग्रहीत प्रक्रिया है जो इसके अंत में एक एक्सएमएल स्टेटमेंट का उपयोग करती है, और मुझे कुछ एक्सएमएल देता है।एक एक्सएमएल संग्रहीत प्रक्रिया को कॉल करने वाली इकाई फ्रेमवर्क 2033 वर्णों

मैं .NET 4 और इकाई फ्रेमवर्क का उपयोग कर रहा हूं और जब मैं इस संग्रहीत प्रक्रिया का फ़ंक्शन आयात करता हूं और इसे इकाई फ्रेमवर्क के माध्यम से कॉल करने का प्रयास करता हूं तो यह 2033 वर्णों पर रिटर्न को छोटा करता है।

मैंने संग्रहीत प्रक्रिया को कॉल करने के लिए एक पारंपरिक एडीओ.NET दृष्टिकोण के लिए इकाई फ्रेमवर्क को बदल दिया, जिसमें एक ही समस्या थी - 2033 वर्णों पर छिड़काव - जो तब होता है जब मैं निम्नलिखित एमएसडीएन आलेख में आया हूं, यह बताता है कि यह डिज़ाइन है और इसे दूर करने के लिए "ExecuteXMLReader" विधि का उपयोग करें:

http://support.microsoft.com/kb/310378

तो यह एक अस्थायी ठीक के रूप में अब काम कर रहा है, लेकिन मैं इकाई की रूपरेखा समारोह आयात तो मैं नहीं मिल गया है ADO.NET कोड मिश्रित उपयोग करना चाहते हैं ईएफ कोड के साथ।

क्या कोई तरीका है कि मैं ईएफ में फ़ंक्शन आयात का उपयोग कर सकता हूं, एक्सएमएल वापस कर सकता हूं और 2033 वर्ण सीमा को पार कर सकता हूं?

सादर
bgs264

उत्तर

7

मैं आज ही समस्या का सामना किया।

एफई समारोह कॉल 2033-लंबी श्रृंखला में एक्सएमएल रिटर्न 'हिस्सा' (जैसे अगर आपके XML था 5000 वर्ण तक आप प्राप्त होगा 3 परिणाम: 2 2033 की वर्ण और 934 में से 1 वर्ण)

आप कर सकते हैं एक्सएमएल की पूरी सूची वापस करने के लिए आसानी से इन हिस्सों को जोड़ दें।

+0

आप कुछ कोड का हिस्सा सका:

using (var db = new MyEntities()) { IEnumerable<string> results = db.GetSomeXML(ProductCode); return results.FirstOrDefault(); } 
इस के लिए

:

इस से

? – Dementic

+0

नीचे छोटे कोड खंड। – Justin

2

मैंने फर्मिन के जवाब को ऊपर उठाया। डेमेन्टिक (और किसी और को) का जवाब, यहां एक कोड खंड है।

using System.Text;  //For the StringBuilder 

using (var db = new MyEntities()) 
{ 
    StringBuilder retval = new StringBuilder(); 

    IEnumerable<string> results = db.GetSomeXML(ProductCode); 
    foreach (var result in results) 
     retval.Append(result); 

    return retval.ToString();   
} 
+0

मैंने अपना मूल उत्तर पोस्ट करने के बाद से नौकरी ले ली है (दो बार!) लेकिन स्मृति से ऊपर कोड मेरे पास जितना कम या कम था। – Fermin

+0

@ जस्टिन क्या आप कृपया 'db.GetSomeXML()' विधि दिखा सकते हैं? मैं संग्रहीत प्रक्रिया से लौटने वाले 'TSQL-XML' डेटाटाइप के साथ इस कोड को लागू करने में सक्षम नहीं हूं। कोई त्रुटि नहीं है, केवल परिणाम परिवर्तनीय 'NULL' है। – Muflix

+0

@Muflix, कि GetSomeXML() ईएफ संग्रहीत प्रक्रिया के (बहुत) कंपनी विशिष्ट फ़ंक्शन आयात के लिए एक सामान्यीकृत नाम है। मेरे पास वर्तमान में उस तक पहुंच नहीं है, लेकिन आज रात/कल देखेंगे। स्मृति से, यह शायद nvarchar (अधिकतम), या * संभवतः * TSQL-XML हो गया होगा। हम एसक्यूएल 2008 का उपयोग कर रहे थे। – Justin

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

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