我很想进入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流派。
不知道这里发生了什么:(
答案 0 :(得分:3)
SampleData
类继承自DropCreateDatabaseIfModelChanges
。如果模型没有改变,数据库保持原样。
那么,在评论Seed
中的数据生成代码之前,您是否在桌面上运行了该应用程序?如果是这样,那就是数据的存在方式(在初始数据库创建期间使用了Seed
的原始版本)。
您可以手动删除数据库,也可以向模型中添加临时属性。在任何一种情况下,初始化程序都会在下次运行时使用您的新(无数据)版本SampleData.Seed
自动为您重新创建数据库。
编辑实际上还有另一种方法可以将DropCreateDatabaseIfModelChanges
更改为DropCreateDatabaseAlways
;但是,每次应用程序启动时都会这样做,所以如果您希望数据保持不变,请不要这样做。