Вопрос о приложении MVC MusicStore - PullRequest
1 голос
/ 16 августа 2011

Я новичок, чтобы погрузиться в MVC3 и очень взволнован, чтобы изучить его. Я пытаюсь построить это: http://mvcmusicstore.codeplex.com/ с нуля. После загрузки SampleData.cs в мою папку Models и внесения этих изменений в мой Global.asax.cs:

    protected void Application_Start()
    {
        System.Data.Entity.Database.SetInitializer(new MvcMusicStore.Models.SampleData());
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }

Я получаю очень странный вывод. Несмотря на то, что я закомментировал все данные в SampleData.cs, ​​жанр все еще отображается в моем locahost / Store / Index. И вот еще более интересная часть: на моем настольном компьютере он появляется, но когда я копирую свое решение на USB-накопитель и запускаю его на своем ноутбуке, он показывает 0 Genre.

Не знаю, что здесь происходит: (

1 Ответ

3 голосов
/ 16 августа 2011

Класс SampleData наследуется от DropCreateDatabaseIfModelChanges.Если модель не меняется, база данных остается без изменений.

Итак, вы запустили приложение на рабочем столе, прежде чем закомментировать код генерации данных в Seed?Если так, то вот как данные туда попали (оригинальная версия Seed использовалась при первоначальном создании БД).

Вы можете удалить базу данных вручную или добавить временное свойство в модель .В любом случае инициализатор автоматически воссоздает для вас базу данных при следующем запуске, используя вашу новую (без данных) версию SampleData.Seed.

EDIT На самом деле есть еще один вариант, которыйизменить DropCreateDatabaseIfModelChanges на DropCreateDatabaseAlways;однако, это действительно будет происходить при каждом запуске приложения, поэтому не оставляйте это так, если хотите, чтобы ваши данные сохранялись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...