C# EF核心迁移是否具有潜在破坏性?

C# EF核心迁移是否具有潜在破坏性?,c#,sql-server,entity-framework-core,C#,Sql Server,Entity Framework Core,我正在使用EF Core集成设置一个.NET Core web服务,目前已为DB模式配置了迁移(context.Migrate()在C#code中调用)。我想知道如果EF Core为给定的连接字符串检测到一个现有的数据库,并且该数据库具有完全不同的模式,因此不能进行非破坏性迁移,会发生什么?EF Core是否会取消现有数据库并创建新模式或出错?EF Core将尝试将迁移转换为SQL,SQL将运行。由于模式不同/与预期不同,因此迁移将作为SQL异常失败,该异常将回退到EF Core链。(本质上,迁

我正在使用EF Core集成设置一个.NET Core web服务,目前已为DB模式配置了迁移(
context.Migrate()
在C#code中调用)。我想知道如果EF Core为给定的连接字符串检测到一个现有的数据库,并且该数据库具有完全不同的模式,因此不能进行非破坏性迁移,会发生什么?EF Core是否会取消现有数据库并创建新模式或出错?

EF Core将尝试将迁移转换为SQL,SQL将运行。由于模式不同/与预期不同,因此迁移将作为SQL异常失败,该异常将回退到EF Core链。(本质上,迁移会失败,并且不会发生任何事情,因为所有操作都是在一个事务下运行的,该事务在失败时回滚)

如果它没有发现已经应用了迁移,则应该出错,但要确保我会复制一个这样不同的数据库并对其运行迁移,只是为了确保不同的模式会导致异常。现有的数据库将不会被删除,除非您手动删除它,然后EF将创建一个新的数据库again@CamiloTerevinto如果现有模式与模型相关,并且需要一些迁移来再次更新模式,以匹配modelsCheckout中的新更改,那么迁移将起作用