EF核心,无需迁移即可创建数据库,即完全仅编写代码优先模型

时间:2020-01-22 08:59:45

标签: entity-framework-core ef-code-first

正常的工作流程是什么?

我正在尝试移至ef core 3.1,但我似乎不太了解 正常的预期工作流程是什么。

如果我使用的是IdentityDbContext,如何通过0次迁移生成数据库。

我每次都要更改模型,是否需要创建迁移? 即使我想说只是从头开始。 我对迁移不感兴趣,但似乎必须有核心才能使用模型(首先代码)创建数据库

下面的代码不是我正在使用的代码,但是可以满足我的要求....即使我进行了这些更改,似乎它也是一个工作流程依赖项(确实很糟糕)/希望不是。

// auto migration
context.Database.Migrate();

在没有迁移的情况下,它仅创建一个空的数据库,如何在不生成新迁移的情况下基于模型创建它? 这是ef6中的默认行为,我不想在开发过程中保持迁移,我只是想说一下它的不同是否告诉我,我会丢掉并重新创建。

您是否被迫使用迁移?换句话说,每次更改数据库时,您都必须删除所有迁移,然后以min为1迁移再次创建,否则甚至不考虑模型实体。

这是Ef核心3.1版,我认为它现在已经超越了此限制。

~startup.cs
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        // configure app

        SeedData.Initialize(app.ApplicationServices);
    }       

    // dbInitializer.cs
    public static class SeedData
    {
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var serviceScope = serviceProvider.CreateScope())
            {
                var context = serviceScope.ServiceProvider.GetService<ApplicationDbContext>();

                // auto migration
                context.Database.Migrate();

                // Seed the database.
                InitializeUserAndRoles(context);
            }
        }

        private static void InitializeUserAndRoles(ApplicationDbContext context)
        {
            // init user and roles  
        }
    }

0 个答案:

没有答案