В моем приложении MVC3 есть следующая модель, и я сначала использую код фрейма объекта 4.1.
public class Movie
{
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Director { get; set; }
[CustomValidation(typeof(MovieValidator), "ValidateReleaseDate")]
public DateTime ReleaseDate { get; set; }
}
Нет, если я удаляю атрибут Required из Title и Director и делаю их обнуляемыми в базе данных (которая автоматически создается кодом EF сначала из вышеупомянутой модели), я получаю следующую ошибку:
Модель, поддерживающая MoviesDB
контекст изменился, так как база данных
был создан. Либо вручную
удалить / обновить базу данных или позвонить
Database.SetInitializer с
Экземпляр IDatabaseInitializer. За
Например,
DropCreateDatabaseIfModelChanges
Стратегия автоматически удалит и
воссоздать базу данных и, при необходимости,
заполнить его новыми данными.
Я прочитал, что для решения этой проблемы мне нужно сделать одно из следующих действий:
1) удалите базу данных, чтобы EF мог воссоздать ее
2) добавить следующие строки в классе контекста: (это не работает в контексте с EF 4.1, я добавил в application_start, и это работает. Почему это не работает в контексте calss сейчас?)
Database.SetInitializer<MoviesDB>(
new DropCreateDatabaseIfModelChanges<MoviesDB>());
3) сопоставить таблицу с моделью (моя модель точно такая же, как таблица, почему я все еще получаю эту ошибку?)
Пожалуйста, предложите ответы на вопросы, упомянутые в пунктах 2 и 3.
Спасибо.