Asp.net mvc asp mvc noob:为什么我的mvc应用程序没有从中填充;s种子数据?
我正在学习ASP MVC 3音乐商店教程——将C#翻译成VB。 我有一个名为SampleData的类,它应该保存应用程序的数据。看起来是这样的:Asp.net mvc asp mvc noob:为什么我的mvc应用程序没有从中填充;s种子数据?,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我正在学习ASP MVC 3音乐商店教程——将C#翻译成VB。 我有一个名为SampleData的类,它应该保存应用程序的数据。看起来是这样的: Public Class SampleData Inherits DropCreateDatabaseIfModelChanges(Of MusicStoreEntities) Protected Overrides Sub Seed(context As MusicStoreEntities)
Public Class SampleData
Inherits DropCreateDatabaseIfModelChanges(Of MusicStoreEntities)
Protected Overrides Sub Seed(context As MusicStoreEntities)
Dim genres As Genre() = { _
New Genre() With {.name = "Rock"},
New Genre() With {.name = "Jazz"},
... more genres...
}
我有一个名为MusicStoreEntities的类,它继承自DbContext,如下所示:
Public Class MusicStoreEntities
Inherits DbContext
Property albums As DbSet(Of Album)
Property genres As DbSet(Of Genre)
我的控制器应该返回一个列出类型的视图,但类型列表为空
' GET: /Store
Dim storeDB As MusicStoreEntities = New MusicStoreEntities()
Function Index() As ActionResult
Dim genres As List(Of Genre) = storeDB.genres.ToList
Return View(genres)
End Function
我也在调用位于global.asax的应用程序_start中的种子
Sub Application_Start()
System.Data.Entity.Database.SetInitializer(
New MvcMusicStore.Models.SampleData())
基本上,我应该看到所有的类型,但不
我不知道如何进行调试。我从哪里开始?您是否在位于global.asax的应用程序\u start中调用您的种子 我不知道vb,但这是c:
将
DropCreateDatabaseIfModelChanges
更改为DropCreateDatabaseAlways
也会有所帮助,它将强制您的数据库在每次程序运行时删除并重新设置种子。您是否更改了模型以强制删除?如果将其从DropCreateDatabaseIfModelChanges更改为DropCreateDatabaseAlways,则会发生什么情况,因此它将始终删除它并重新设定种子,以确保正在调用种子函数。就是这样。如果你改变答案以反映你的评论,我将接受。谢谢@MarkOreta!成功了!更改了DropCreateDatabaseIfModel更改为DropCreateDataBaseAlways,现在它可以完美地工作!
protected void Application_Start() {
Database.SetInitializer(new SampleData());
}