首页 > 解决方案 > EF Core context.SaveChanges() 在上一条语句之前执行

问题描述

我正在为我工​​作的公司开发一种内部工具,用于将数据从旧的 SQLite 数据库迁移到新的 SQL Server 数据库。在我完成所有实体转换并将它们添加到我的目标上下文之后,我想将它们提交到目标数据库实例并通过控制台更新用户正在进行提交操作。但是,每当我运行它时,直到上下文完成刷新更改后,字符串才会打印到控制台。

我唯一能想到的是,.NET Core 运行时出于某种原因动态地重新排序操作,这意味着直到提交成功或失败后才会调用 print 语句。这在使用该工具的 UX 方面是有问题的,因为不清楚是否实际发生了任何事情,因为该工具似乎会挂起一段时间。

任何想法这里发生了什么或我如何强制语句以所需的顺序执行?

private static void CommitChanges(InductosenseContext destinationContext)
{
    Console.Write("Committing changes to destination database...");
    destinationContext.SaveChanges();
    Console.WriteLine(" DONE.");
}

标签: c#sql-serverentity-framework.net-coreentity-framework-core

解决方案


推荐阅读