Подтвердить что ты не робот

Как отключить автоматическое создание таблиц в EF 5.0?

Я установил Entity Framework 5.0 RC для Framework 4.0 в свой проект. Но когда я пытаюсь получить данные из Views, я получаю ошибку. EF пытается создать таблицу для этого объекта.

4b9b3361

Ответ 1

Используйте это при запуске приложения, чтобы отключить инициализацию и миграцию базы данных:

Database.SetInitializer<YourContextType>(null);

Ответ 2

Если вы хотите полностью отключить инициализацию/миграцию базы данных независимо от того, в каком проекте вы используете Контекст, вы можете добавить статический конструктор в свой контекст, чтобы вызвать инициализатор. Это гарантирует, что SetInitializer будет вызываться один раз перед первой конструкцией/использованием вашего контекста.

public class YourContext : DbContext
{
    static YourContext()
    {
        // don't let EF modify the database schema...
        Database.SetInitializer<YourContext >(null);
    }

    public YourContext() : base("name=YourContext")
    {}
    ...
}

Однако, если вы только хотите сделать это в нескольких проектах, вам лучше сделать это явно через запуск приложения - например. во время вашей обычной настройки IoC, например, предложенной Ладиславом.