Ef core для создания БД без миграций, т.е. полностью только код первой модели - PullRequest
0 голосов
/ 22 января 2020

Каков нормальный рабочий процесс?

Я пытаюсь перейти на 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  
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...