Entity Framework 4.1 не удаляет базу данных, когда я реализую DropCreateDatabaseAlways - PullRequest
1 голос
/ 05 декабря 2011

Я создал класс контекста, который реализует DbContext "BeerRecommenderContext" и инициализатор, который реализует

DropCreateDatabaseAlways<BeerRecommenderContext>

Когда я запускаю / отлаживаю проект, структура сущностей не удаляет старую базу данных и не создает новую, поэтому изменения в модели не отражаются, что вызывает проблемы. Затем я вручную удаляю базу данных и запускаю ее заново, а структура сущностей не создает базу данных. Я запускаю его второй раз, и структура сущностей успешно создает новую базу данных. Я не очень знаком со строками подключения, поэтому это может быть проблемой:

<add name="BeerRecommenderContext"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
     database=BeerRecommenderContext.mdf;
     AttachDBFilename=|DataDirectory|BeerRecommenderContext.mdf;
     User Instance=true"
     providerName="System.Data.SqlClient" />

В методе Application_Start моего файла Global.asax.cs я добавил строку

Database.SetInitializer<BeerRecommenderContext>(new BeerRecommenderInitializer());

Как мне заставить DropCreateDatabaseAlways работать правильно?

1 Ответ

1 голос
/ 05 декабря 2011

Я обнаружил, что добавление Database.SetInitializer в Application_Start не работает каждый раз.

Я добавляю статический конструктор в DbContaxt, который вызывает Database.SetInitializer

public class BeerRecommenderContext: DbContext
{

    static BeerRecommenderContext ()
    {
        Database.SetInitializer<BeerRecommenderContext >(new BeerRecommenderInitializer());
    }
}
...