2011-11-17 18 views
5

रावेन क्लाइंट (IDocumentSession) सर्वर पर कुछ भी नहीं भेजता है जब तक SaveChanges कहा जाता है। तो इसे यूनिटऑफवर्क कार्यान्वयन के रूप में माना जा सकता है, है ना?IDocumentSession.SaveChanges() बनाम लेनदेन

क्या मैं सोच रहा हूं कि SaveChanges और Transaction.Commit के बीच एकमात्र अंतर यह है कि प्रतिबद्धता के दौरान कुछ विफल होने पर बाद में सभी परिवर्तन वापस आते हैं?

उत्तर

7

यदि आप एक ही ऑपरेशन कर रहे हैं, तो SaveChanges परिणामस्वरूप एक स्पष्ट लेनदेन में स्पष्ट लेनदेन का उपयोग करने की आवश्यकता नहीं है।

यदि आप System.Transactions का उपयोग करते हैं, तो आप एक ही लेनदेन का उपयोग करके कई संचालन कर सकते हैं, यानी एकाधिक SaveChanges कर सकते हैं। रेवेन अनुरोध हेडर का उपयोग कर http पर लेनदेन का प्रबंधन करेगा।

डॉक्स में और अधिक पढ़ें: http://ravendb.net/documentation/docs-api-transactions

+0

कुल मेड एंड्रा स्वेनस्का रावेनडीबी निसार;) (टिप्पणी बहुत कुछ नहीं कहती है, अगर आप स्वीडिश नहीं हैं तो इसे अनदेखा करें) – jgauffin

6

jgauffin, SaveChanges(), एक सौदे में काम इसलिए यदि आप एक से अधिक दस्तावेज़ संशोधित कर रहे हैं, उन सभी को बचा लिया जाएगा, या कोई भी होगा। हम सिस्टम का भी समर्थन करते हैं। लेनदेन, लेकिन आमतौर पर इसकी आवश्यकता नहीं होती है।