自动迁移不起作用[EF Core]

时间:2018-09-02 19:19:58

标签: entity-framework entity-framework-core

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

EnsureCreated()基于项目中的模型创建数据库。但是它不是以迁移方式来完成的。实际上,此方法不需要迁移。这种方法的缺点是由它创建的数据库将来无法通过任何迁移进行更新。确实,此方法已添加到EF中,以帮助人们以MVP风格快速创建项目。

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