9

इस पर ध्यान देने मैं ओ "मींट" है कि उदाहरण के लिए मूल्य सत्यापित इस परिदृश्य परएक TransactionScope क्या करता है वास्तव में क्या

int myInt = 10; 
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew)) 
{ 
    myInt=20; 
    Transaction t = Transaction.Current; 

    t.Rollback(); 
} 

तो यह मुझे सोच कर ली "एक TransactionScope केवल संबंधित गतिविधियों रोलबैक है में rolledback नहीं है डेटाबेस में? या ऐसी अन्य चीजें हैं जो लेनदेन प्रबंधित कर सकती हैं और मैं उनसे अवगत हूं? "

उत्तर

19

वर्तमान लेनदेन केवल विशिष्ट वस्तुओं, कि संसाधन प्रबंधकों कहा जाता है को प्रभावित करता है। उन ऑब्जेक्ट को लेनदेन में भाग लेने के लिए विशिष्ट इंटरफेस लागू करना होगा। ADO.NET SqlConnection ऑब्जेक्ट एक उदाहरण है। ऑब्जेक्ट बनाना मुश्किल नहीं है जो "ट्रांज़ेक्शनल मेमोरी" के रूप में काम करता है। उन वस्तुओं को अस्थिर संसाधन प्रबंधक कहा जाता है। एक साधारण उदाहरण here है।

+0

एक और उदाहरण: http://msdn.microsoft.com/en-gb/magazine/cc163688.aspx – Peter

+0

+1 उत्कृष्ट उत्तर के लिए –

-3

TransactionScope (और लेन-देन) केवल डेटाबेस प्रश्नों से निपटने के लिए किया जाता है। यह वास्तव में "रोलबैक" परिवर्तनों को समझ में नहीं आता है जो केवल अस्थायी रूप से अस्थायी रूप से रखा जाता है, (जैसे आपका int चर)।

+0

-1 तो आप जो बोलते बिल्कुल कोई मतलब नहीं ... क्या हुआ अगर मैं एक पाठ फ़ाइल को यह मूल्य बचत गया था बनाता है? तब यह रोलबैक होगा? – Leonardo

+0

नहीं, मेरा मतलब गैर लगातार डेटा था। एक फाइलवाइटर के पास "रोलिंग बैक" परिवर्तनों के लिए अपना स्वयं का तंत्र होगा, फिर भी आप ट्रांज़ेक्शनस्कोप का उपयोग नहीं कर सकते हैं। – crazylpfan

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