Entity Framework прилага миграции по време на изпълнение

Създавам C# WinForms приложение, което първо използва Entity Framework Code и е настроено да създава базата данни, ако тя не съществува.

Тъй като приложението не се разпространява с база данни, то го създава, когато е необходимо, така че трябва да намеря начин да открия кои миграции трябва да бъдат приложени за всеки случай, когато пусна нова версия на приложението.

Как мога да открия и приложа необходимите миграции по време на изпълнение?


person hyperar    schedule 19.12.2016    source източник
comment
проверихте ли това SO QA? особено тази връзка, която използва DB Migrator. Все още е наличен в EF 6, така че, може да има отношение към вашия въпрос..   -  person Bagus Tesa    schedule 19.12.2016
comment
Това изглежда е точно това, което търсих, благодаря!!   -  person hyperar    schedule 19.12.2016


Отговори (1)


опитайте този Initializer:System.Data.Entity.MigrateDatabaseToLatestVersion, той ще актуализира вашата база данни(без изтриване на db, без изтриване на данни), просто актуализирайте обекта, променен.

Database.SetInitializer(new MigrateDatabaseToLatestVersion<T, DbMigrationsConfiguration<T>>());
        try
        {
            using (var ctx = new T())
            {
                ctx.Database.Initialize(true);
            }
        }
        catch (Exception e)
        {
        }
person Rick    schedule 19.12.2016
comment
Използвах вариант на това, което ти предложи. Database.SetInitializer<ObjectContext>( new MigrateDatabaseToLatestVersion<ObjectContext, Configuration>()); - person hyperar; 19.12.2016
comment
Само една много лека заядка.. празните блокове за улавяне не са край на проблемите... - person speciesUnknown; 11.10.2018
comment
@gburton всъщност е само началото на още един. - person Ulysses Alves; 05.11.2018