О Code First Database Evolution (также известный как Миграции) - PullRequest
13 голосов
/ 16 января 2011

Я смотрел скринкаст из MSDN BLOG , в котором говорится о миграции базы данных.

Есть ли кто-нибудь, кто знает, когда мы можем использовать эту функцию? Похоже, он еще не работает в CTP5.

Кстати, есть ли способ заполнить исходные данные после того, как я изменил код схемы?

Это то, что я делаю сейчас, стирает все данные каждый раз, когда я изменяю модель.

DbDatabase.SetInitializer<Context>(
    new DropCreateDatabaseIfModelChanges<Context>());

Ответы [ 3 ]

10 голосов
/ 16 января 2011

Они, скорее всего, получат эту функцию миграции в RTM-версии, которая запланирована на первый квартал 2011 года.

Чтобы заполнить базу данных некоторыми исходными данными, вы можете создать свой собственный инициализатор базы данных и сделать так, чтобы он наследовал от выбранной вами стратегии (сейчас у нас есть 2 варианта), а затем переопределить Seed метод внутри него:

public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
    protected override void Seed(InheritanceMappingContext context)
    {        
        MyEntity entity = new MyEntity()
        {
            ...
        };
        context.MyEntities.Add(entity);
        context.SaveChanges();
    }
}
1 голос
/ 13 октября 2011
0 голосов
/ 17 июня 2011

EF 4.1 Candidate Release выпущен в марте и, похоже, эта функция миграции еще не включена

...