0

ASP MVC 3 ミュージック ストア チュートリアルに従っています。C# を VB に変換しています。 http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-4

アプリケーションのデータを保持することになっている SampleData というクラスがあります。次のようになります。

 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...
             }

次のように DbContext から継承する MusicStoreEntities というクラスがあります。

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 にある Application_start でシードを呼び出しています。

Sub Application_Start()
    System.Data.Entity.Database.SetInitializer(
           New MvcMusicStore.Models.SampleData())

基本的には全ジャンル見れるはずなのに見れない。

ここに画像の説明を入力

デバッグの方法がわかりません。どこから始めればよいですか?

4

1 に答える 1

2

global.asaxにあるApplication_startでシードを呼び出していますか?

私はvbを知りませんが、ここにc#があります:

protected void Application_Start() {
    Database.SetInitializer(new SampleData());
}

に変更DropCreateDatabaseIfModelChangesするDropCreateDatabaseAlwaysことも役立つ可能性があり、プログラムが実行されるたびにデータベースを強制的に削除して再シードします。

于 2012-08-09T20:07:14.137 に答える