मुझे एंटिटी फ्रेमवर्क 6 के दस्तावेज में इसका उत्तर मिला:
EF6 की शुरुआत के साथ, Microsoft नए एपीआई तरीकों का उपयोग करने की सिफारिश करता है: Database.BeginTransaction()
और Database.UseTransaction()
। हालांकि System.Transactions.TransactionScope
अभी भी बहुत अच्छी तरह से समर्थित है, यह EF6 के अधिकांश उपयोगकर्ताओं के लिए आवश्यक नहीं है ।
जबकि Database.BeginTransaction()
इसका उपयोग केवल डेटाबेस से संबंधित संचालन लेनदेन के लिए किया जाता है System.Transactions.TransactionScope
, इसके अलावा, यह 'प्लेन सी # कोड' के लिए भी संभव बनाता है।
इसलिए, Database.BeginTransaction()
EF6 में लेन-देन में केवल db संबंधित प्रचालन करने का उपयोग करें System.Transactions.TransactionScope
, अन्यथा db प्रचालन और C # कोड को एक साथ मिलाने के लिए उपयोग करें ।
उन लोगों के लिए जो अभी भी TransactionScope
दृष्टिकोण को पसंद करते हैं , यह अनुशंसा की जाती है कि वे इसकी सीमाओं की जांच करें, विशेष रूप से क्लाउड परिदृश्यों में (क्लाउड परिदृश्य वितरित लेनदेन का समर्थन नहीं करते हैं)।
आगे की जानकारी यहाँ मिल सकती है