2010-12-07 16 views
5

में शून्य हैं, कभी-कभी साइटकोर कुछ आइटम वापस नहीं करेगा। उदाहरण के लिए, निम्न कोड में:आइटम साइटकोर 6

Sitecore.Data.ID itemId = new Sitecore.Data.ID(id); 
Sitecore.Context.Database.GetItem(id); 

इस अशक्त वापस आ जाएगी, लेकिन यदि एक ही स्ट्रिंग आईडी सामग्री संपादक में सामग्री पेड़ ऊपर खोज पर रखा गया है, यह आइटम वापस आ जाएगी! संदर्भ डेटाबेस वेब है और मैंने आइटम को कई बार पुन: प्रकाशित किया है।

मैं साइटकोर 6.2.0 (संशोधन 100701) का उपयोग कर रहा हूं।

+0

मैंने सवाल वापस ले लिया, क्योंकि इसे उत्तर को प्रतिबिंबित करने के लिए अद्यतन किया गया था - इसलिए अब समझ में नहीं आया। –

उत्तर

5

क्या आप वाकई एक टाइपो नहीं हैं? मेरा मतलब है, क्या आप id से GetItem के बजाय itemId पास नहीं करना चाहिए?

मुझे याद नहीं है कि यह वास्तव में कैसे काम करता है, लेकिन यदि आप इस विधि के लिए एक स्ट्रिंग पास करते हैं, तो शायद यह इसे पथ के रूप में मानता है, आईडी नहीं, और पथ को आइटम को हल करने का प्रयास करता है। आप इस बहुत तेजी से जांच कर सकते हैं की तुलना में मुझे क्या करना:

Sitecore.Data.ID itemId = new Sitecore.Data.ID(id); 
Sitecore.Context.Database.GetItem(itemId); 
+0

हाँ, मुझे यकीन है कि खेद की प्रतिलिपि बनाने की वजह से मेरी गलती खेद है, मैं कुछ उपयोगिता फ़ंक्शन का उपयोग कर रहा हूं: सार्वजनिक स्थैतिक साइटकोर.डाटा.इटम.इटम गेट इटैमबीआईआईडी (साइटकोर.डाटा.आईडी आईडी) { वापसी साइटकोर.कॉन्टेक्स्ट.डेटा.जीटइटम (आईडी); } – lurscher

+0

शायद, आइटम अभी भी वेब डेटाबेस में नहीं है? इसमें प्रकाशन प्रतिबंध हो सकते हैं या वर्कफ़्लो पास नहीं हो सकते हैं ... –

+1

सुनिश्चित करने के लिए वेब डीबी के खिलाफ आईडी = 'आपका-GUID- यहां' आइटम से सरल "चुनें * ठीक है, मुझे पता चला कि कारण क्या है ... यह ऐसा लगता है कि साइटकोरर पसंद नहीं करता है जब संदर्भ साइटकोर उपयोगकर्ता extranet/अज्ञात है। मैं एक नियमित उपयोगकर्ता के रूप में लॉग इन करता हूं और यह काम करता है ... – lurscher

5

मैं सिर्फ एक ही मुद्दा था - GetItem() फ़ंक्शन NULL

के बारे में एक घंटे के लिए मेरे बाल खींच के बाद, मैंने पाया कि मेरी GetItem() समारोह से पुकारा जाता है फ्रंट एंड और extranet/Anonymous उपयोगकर्ता के पास उस आइटम तक पहुंच नहीं है जिसे मैं प्राप्त करने का प्रयास कर रहा हूं।

तो, सुरक्षा की जांच करना याद रखें!

0

निम्नलिखित आलेख देखें। http://sdn.sitecore.net/Articles/API/Context%20and%20databases.aspx

web.config पर साइट का नाम = "वेबसाइट" नोड गलत डेटाबेस पर इंगित कर रहा है। डेटाबेस संपत्ति "मास्टर" या "वेब" होना चाहिए।

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