MVC音乐商店应用问题

时间:2011-08-16 14:38:22

标签: c# asp.net-mvc asp.net-mvc-3

我很想进入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流派。

不知道这里发生了什么:(

1 个答案:

答案 0 :(得分:3)

SampleData类继承自DropCreateDatabaseIfModelChanges。如果模型没有改变,数据库保持原样。

那么,在评论Seed中的数据生成代码之前,您是否在桌面上运行了该应用程序?如果是这样,那就是数据的存在方式(在初始数据库创建期间使用了Seed的原始版本)。

您可以手动删除数据库,也可以向模型中添加临时属性。在任何一种情况下,初始化程序都会在下次运行时使用您的新(无数据)版本SampleData.Seed自动为您重新创建数据库。

编辑实际上还有另一种方法可以将DropCreateDatabaseIfModelChanges更改为DropCreateDatabaseAlways;但是,每次应用程序启动时都会这样做,所以如果您希望数据保持不变,请不要这样做。