Я установил Entity Framework 5.0 RC для Framework 4.0 в свой проект. Но когда я пытаюсь получить данные из представлений, я получаю сообщение об ошибке. EF пытается создать таблицу для этого объекта.
Как отключить автоматическое создание таблиц в EF 5.0?
Ответы (2)
Используйте это при запуске вашего приложения, чтобы отключить инициализацию и миграцию базы данных:
Database.SetInitializer<YourContextType>(null);
person
Ladislav Mrnka
schedule
24.05.2012
Конструктор слишком поздно, Грег. Прочтите ответ еще раз. Запуск приложения находится в вашем файле global.asax
- person EightyOne Unite; 17.10.2012
Есть ли способ отключить его глобально, или мне нужно сделать это для каждого dbContext?
- person JMarsch; 05.03.2013
@JMarsch: вам нужно сделать это для каждого типа контекста.
- person Ladislav Mrnka; 05.03.2013
Если вы хотите полностью отключить инициализацию/миграцию базы данных независимо от того, в каком проекте вы используете свой контекст, вы можете добавить статический конструктор в свой контекст для вызова инициализатора. Это гарантирует, что 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, как это предложил Ладислав.
person
Adriaan de Beer
schedule
30.07.2013