Как отключить функцию кода в EF (MVC4 Visual Studio 2012)

Как отключить функцию кода в EF (Visual Studio 2012)

Я использую Visual Studio 2012, MVC4 (шаблон интернет-приложения).

Я хочу использовать EF, но не с его первой кодовой функцией. Я хотел бы, чтобы приложение отклонялось, а не создавало или изменяло мою базу данных на основе моего кода. (я просто не могу жить с этим ощущением, что моя база данных менялась за кулисами... Я хочу, чтобы приложение использовало точный db, который я создал... и если есть какая-то вещь, которую нужно изменить, я буду сделай это сам)

это возможно с новым Ef (VS2012)?

Я видел, как многие спрашивали об этом, но пока я не могу найти ответ.

Ответы

Ответ 1

Вы можете использовать Code First и убедиться, что ваша база данных никогда не обновляется или не перезаписывается при изменении вашей модели, устанавливая инициализатор базы данных на null:

Database.SetInitializer<MyDbContext>(null);

Это статический метод класса Database и должен быть вызван в начале вашего приложения, например, в global.asax или в статическом конструкторе вашего контекстного класса. Для этого вам необходимо вручную изменить класс модели и схему базы данных, чтобы они соответствовали.

Вы также можете использовать функцию Reverse Engineer для создания модели Code First из существующей базы данных. Это объясняется здесь: http://msdn.microsoft.com/en-us/data/jj200620

Или, если вы вообще не хотите использовать Code First и работаете с модельером, вы можете использовать подход Database First, описанный здесь: http://msdn.microsoft.com/en-us/data/jj206878

Обзор всех возможных опций приведен ниже: http://msdn.microsoft.com/en-us/data/ee712907.aspx