В компании, в которой я работаю, я разрабатываю внутренний инструмент, который переносит данные из старой базы данных SQLite в новую SQL Серверную базу данных. После того, как я сделал все свои преобразования сущностей и добавил их в контекст назначения, я хочу зафиксировать их в целевом экземпляре базы данных и обновить с помощью консоли пользователя, что выполняется операция фиксации. Однако всякий раз, когда я запускаю это, строка не выводится на консоль до тех пор, пока контекст не завершит сброс изменений.
Единственное, о чем я могу думать, это то. NET Время выполнения ядра динамически переупорядочивать операции по какой-то причине, то есть оператор print не вызывается до тех пор, пока фиксация не завершится успешно или не удастся Это проблематично c с точки зрения UX для использования инструмента, так как неясно, происходит ли что-то на самом деле или нет, так как инструмент будет казаться зависшим на некоторое время.
Любые идеи, что происходит здесь или как я могу заставить операторы выполнять в нужном порядке?
private static void CommitChanges(InductosenseContext destinationContext)
{
Console.Write("Committing changes to destination database...");
destinationContext.SaveChanges();
Console.WriteLine(" DONE.");
}