.NET कोर वितरित लेनदेन का समर्थन नहीं करता है क्योंकि इसके लिए प्रत्येक प्लेटफॉर्म पर एक अलग लेनदेन प्रबंधक की आवश्यकता होगी। यह भविष्य में दिखाई दे सकता है (यहाँ समस्या प्रगति पर है), लेकिन अभी के लिए कोई भी लेन-देन जिसके लिए दो अलग-अलग संसाधन प्रबंधकों की आवश्यकता होगी, इस अपवाद को छोड़ देगा।
इसके बजाय आप अलग लेनदेन का समन्वय कर सकते हैं। दो अलग-अलग लेन-देन अपना काम पूरा करें, और फिर उन दोनों को प्रतिबद्ध करें। एक संभावना . है कि पहली प्रतिबद्धता सफल होती है और दूसरी विफल हो जाती है, लेकिन SQL सर्वर के लिए, यह एक बहुत ही दुर्लभ अवसर होगा। कुछ इस तरह:
_db1UOW.Begin(); //creating sql transaction
await _db1UOW.IDenialDetailsRepositorydb1.InsertDenialDetails(denialsDetails);
await _db1UOW.IRuleDetailsRepositorydb1.InsertRulesDetails(rulesDetails);
_db2UOW.Begin(); //creating sql transaction
await _db2UOW.IRuleDetailsRepository.GetRulesDetails();
await _db2UOW.IDenialDetailsRepository.InsertDenialDetails(denialsDetails);
var data = await _db2UOW.IRuleDetailsRepository.InsertRulesDetails(rulesDetails);
_db1UOW.Commit(); //commitng sql transaction
try
{
_db2UOW.Commit(); //commitng sql transaction
}
catch (Exception ex)
{
LogError("Second transaction failed to commit after first one committed. Administrators may need to fix stuff");
throw;
}
या यदि दो डेटाबेस एक ही सर्वर पर हैं तो आप एकल SQL सर्वर लेनदेन में परिवर्तनों को सूचीबद्ध करने के लिए एकल SqlConnection के साथ क्रॉस-डेटाबेस क्वेरी का उपयोग कर सकते हैं।