Используя Транзакции с Бизнес-процессами и шаблоном Репозитория

Возможно, вы знакомы с другим языком, где при индексировании символа строки возвращается целое число.

В JavaScript вы получаете человеческое представление строки. Строка изначально кодируется в UTF-16, преобразуется в двоичный файл, а затем сохраняется в памяти. Однако, когда вы получаете к нему доступ, вместо кода UTF-16 вы получаете реальную строку из-за специфического для конкретного языка автоматического преобразования.

Однако, если вы используете Node.js, вы можете использовать буфер для хранения строки и обработки двоичных данных напрямую.

В JavaScript, если вы хотите получить код, вы можете использовать метод codePointAt (index) :

alert( "z".codePointAt(0) ); // 122
alert( "Z".codePointAt(0) ); // 90
7
задан Jim G. 4 October 2009 в 03:28
поделиться

1 ответ

Я предполагаю, что Вы используете.NET здесь. При этом можно просто перенести всю секцию кода в a using оператор с a TransactionScope экземпляр и это обработают семантику транзакции для Вас. Просто необходимо звонить Complete метод в конце:

//BillingServices - This is my billing service layer. called from the UI
public Result GenerateBill(BillData obj)
{
     // Create the transaction scope, this defaults to Required.
     using (TransactionScope txScope = new TransactionScope())
     {
          //Validate BillData

          //Create a receivable line item in the receivables ledger 
          BillingRepository.Save(receivableItem);

          //Update account record to reflect new billing information
          BillingRepository.Save(accountRecord);

          //...do a some other stuff
          BillingRepository.Save(moreStuffInTheDatabase);

          // Commit the transaction.
          txScope.Complete();
     }
}

Если исключение происходит, это имеет эффект не вызова Complete когда из блока кода выходят; Dispose метод на TransactionScope реализация IDisposable интерфейс называют когда объем using из оператора выходят.

В Dispose звоните, это проверяет, чтобы видеть, завершилась ли транзакция (это состояние установлено когда Complete успешно выполняется). Если то состояние не установлено, оно выполняет откат.

Можно затем вложить это в другом TransactionScope экземпляры (глубже в Вашем стеке вызовов на том же потоке) для создания больших транзакций через несколько репозиториев.

5
ответ дан 7 December 2019 в 12:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: