首页 > 解决方案 > 自动迁移不起作用 [EF Core]

问题描述

我试图在我的项目中自动迁移,所以添加了 2 行

_context.Database.Migrate();
_context.Database.EnsureCreated;

但我在我的数据库中看不到任何更新。为什么?

标签: entity-frameworkentity-framework-core

解决方案


自动迁移已从 EF Core 中删除。EF Core 2.0 中不存在此功能。没有计划将此功能添加到 EF。微软认为它的好处小于它的缺点。

EF Core 2.0 中有两种与迁移相关的方法。Database.Migrate()Database.EnsureCreated()。它们都不是完整的迁移。

Migrate()不添加或创建迁移。它只检查是否存在任何未应用的迁移。如果是,则根据它们更新数据库。

EnsureCreated()根据项目中的模型创建数据库。但它并没有以迁移的方式做到这一点。这种方法实际上不需要迁移。这种方法的缺点是它创建的数据库将来不能通过任何迁移进行更新。事实上,这种方法被添加到 EF 以帮助人们以 MVP 风格快速创建项目。

结论:首先添加迁移,然后更新数据库(Database.Migrate())


推荐阅读