2011-08-16 8 views
1

私はMVC3に夢中になり、とても勉強に興奮しています。私はこれを構築しようとしています: http://mvcmusicstore.codeplex.com/ ゼロから。私のモデルフォルダにSampleData.csをダウンロードし、私のGlobal.asax.csにこれらの変更を行った後:MVC MusicStore App Question

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

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

私は出力の非常に奇妙な種類を取得しています。 SampleData.csの総データをコメントアウトしたにもかかわらず、Genreはまだ私のlocahost/Store/Indexに表示されています。そして、ここで私のデスクトップPCに表示されているより面白い部分ですが、私のソリューションをUSBドライブにコピーしてラップトップで実行すると、0のジャンルが表示されます。

いけないがここで何が起こっているか知っている:(

答えて

3

SampleDataクラスがDropCreateDatabaseIfModelChangesから継承しています。モデルが変化しない場合には、そのままデータベースが残っている。

をだから、あなたが実行しませんでしたSeedでデータ生成コードをコメントアウトする前に、デスクトップ上のアプリケーション?もしそうなら、それはデータが(Seedのオリジナルバージョンは、初期DB作成時に使用された)そこに着いた方法です。

あなたは手動でデータベースをドロップすることができ、またはモデルに一時的なプロパティを追加することができます。どちらの場合でも、イニシャライザは新しい(データなし)バージョンSampleData.Seedを使用して、次の実行時に自動的にデータベースを再作成します。

編集DropCreateDatabaseIfModelChangesを実際にはDropCreateDatabaseAlwaysに変更する別のオプションがあります。しかし、これは本当にアプリケーションが起動するたびにそれを行うので、あなたがあなたのデータを永続させたいなら、それをそのままにしないでください。

+0

ニース、それは魅力のように働いた。ありがとう!!! –