【问题标题】:DropCreateDatabaseAlways in EntityFramework CoreEntityFramework Core 中的 DropCreateDatabaseAlways
【发布时间】:2017-05-27 17:40:24
【问题描述】:

我需要在 Visual Studio 中使用 ASP.Net CORE 和 MVC 为学校制作一个网站。还有一个数据库连接到这个网站,它使用 Entity Framework CORE。我已经搭建了很多模型,并且附带了 DbContext。 实际问题:我希望程序在每次运行程序时删除数据库并使用 Entity Framework CORE 创建一个新数据库。

我找到了很多关于同样问题的文章,但是他们提供的解决方案以及 StackOverflow 上用户对其他问题的回答对于最新版本的 Entity Framework 来说并不是“最新的”。在旧版本中,有一个巧妙的解决方案可以实现我想要的目标:只需使用 DropCreateDatabaseAlways 和 seed 即可立即将数据添加到数据库中。 此选项在新的 Core 版本中已消失(尚不支持)。

经过漫长而痛苦的搜索,我找不到任何适用于这个版本的实体框架的东西。

所以我决定问你们......! 脚手架的 DbContext 是这样开始的。我认为实际上不需要此类的更多代码,因为那是所有 modelBuilder 调用和 DbSet 被实例化。但如果您需要更多,请告诉我。

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>

任何帮助将不胜感激。

抱歉英语不好。

【问题讨论】:

    标签: c# asp.net-mvc entity-framework


    【解决方案1】:

    是的,正如您所说 DropCreateDatabaseAlways 是 EF 6。在 EF Core 中,我认为您需要执行以下操作:

    context.Database.EnsureDeleted();
    context.Database.EnsureCreated();
    context.Database.Migrate();
    

    在此处查看更多信息: How and where to call Database.EnsureCreated and Database.Migrate?

    【讨论】:

    • 我猜MigrateEnsureCreated 之后将无法工作。请参阅EnsureCreated 上的 XML 文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多