Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Transactionscope хвърля изключение, тази платформа не поддържа разпределени транзакции при отваряне на обект за връзка

.NET Core не поддържа разпределени транзакции, защото ще изисква различен мениджър на транзакции на всяка платформа. Може да се появи в бъдеще (тук проблемът е в ход), но засега всяка транзакция, която изисква два различни мениджъра на ресурси, ще предизвика това изключение.

Вместо това можете да координирате отделни транзакции. Накарайте две отделни транзакции да завършат работата си и след това да ги ангажирате и двете. Има възможност че първият комит е успешен, а вторият е неуспешен, но за SQL Server това би било много рядко явление. Нещо като:

            _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;
            }

Или ако двете бази данни са на един и същ сървър, можете да използвате запитвания за кръстосани бази данни с една SqlConnection, за да включите промените в една транзакция на SQL Server.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Този код предотвратява ли инжектирането на SQL?

  2. определяне на набора от символи на таблица/база данни?

  3. Научете как да използвате SQL Server Management Studio

  4. SQL Server - обединете редовете в списък, разделен със запетая

  5. Достъпът е отказан при прикачване на база данни