2011-03-23 20 views
15

मैं मुझे लगता है कि एक गणना> 30 है सहेजना चाहते मदों की एक सूची को बचाने के लिए मैंRavenDB सत्र> 30

कह अनुरोधों की अधिकतम संख्या (30) के लिए अनुमति दी कोई त्रुटि मिलती है कोशिश कर रहा हूँ, तो यह सत्र पर पहुंच गया है। रेवेन रिमोट कॉल की संख्या को सीमित करता है जिसे प्रारंभिक चेतावनी प्रणाली के रूप में बनाने के लिए सत्र को की अनुमति है। सत्र कम रहते थे होने की उम्मीद है, और एक ही बार में रेवेन से अधिक दस्तावेज़ लोड करने के लिए लोड जैसी सुविधाओं (स्ट्रिंग [] कुंजी) प्रदान करता है और बैच बचाता है।

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

उत्तर

19

कॉल सत्र। सत्र से पहले अपनी प्रत्येक ऑब्जेक्ट के साथ स्टोर करें। सेव चेंज।

+3

मैं सत्र Session.SaveChanges बाहर मेरे 'foreach' के पक्ष कहा जाता है और यह पूरी तरह से काम किया –

+2

आपने गौर किया गया है: http://ayende.com/blog/4814/ravendb-safe-by-default- डिजाइन ndash यह काम करता है। शायद आपको पुनर्विचार करना चाहिए। – edoloughlin

18

हालांकि अनुशंसित नहीं है; विशेष मामलों में, आप सत्र सेट कर सकते हैं। उन्नत .MaxNumberOfRequestsPerSession संपत्ति।

using (var docStore = store.Initialize()) 
    { 
    using (var session = docStore.OpenSession()) 
     { 
     session.Advanced.MaxNumberOfRequestsPerSession = 1000; 
     } 
    } 
+1

ऊपर दिए गए वैध कारण हैं क्योंकि आप इसे उच्च सेट करना चाहते हैं। 1000 शायद बहुत अधिक है। एक वैध कारण हो सकता है कि आप कई लेन-देन कर रहे हैं, लेकिन अगर कोई सहेजता है तो केवल असफल होना चाहते हैं। त्रुटि बेवकूफ कुछ करने से देवताओं को चेतावनी देना है। – DalSoft

+0

उस कोड को कहां रखा जाए ??? का अर्थ यह है कि कनेक्शन शुरू होने पर या सत्र खोलने पर यह कहें – Mohsin

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

  • कोई संबंधित समस्या नहीं^_^