ASP.NET MVCシリーズ:既存モデルに新しい属性を追加

2431 ワード

モデルクラスMovieに新しい属性Ratingを追加
再コンパイル再生成ソリューション、ショートカットキーCtrl+Shift+B;その後、対応するビューに新しいデータ(Indexなど)を追加する.cshtmlで
編集が完了し、実行後にシステムから「System.I n v a l idOperationException」タイプの例外がEntityFrameworkに報告されました.dllで発生しますが、ユーザーコードでは処理されません.
この異常の原因は、MovieクラスにデータベースよりRating列が1つ増えているため、データベースにRatingフィールドを追加する必要があります.データベースファイルの編集を開くだけでいいです.
ここでは、Code First移行を使用してデータベースを更新する方法について説明します.
まず、App_Dataフォルダの下にあるデータベースファイル(Movies.mdf)を削除し、「パッケージマネージャコンソール」(ツールメニューの「NUGetパッケージマネージャ」から入手可能)を開き、コンソールにEnable-Migrations-ContexttypeName MvcMovieと入力します.Models.MovieDBContext
継続入力コマンドadd-migration Initial

   Migrations Configuration.cs , Configuration Seed , , 。 , update-database ,

   Seed

protected override void Seed(MvcMovie.Models.MovieDBContext context) { context.Movies.AddOrUpdate(i => i.Title, new Movie { Title = "When Harry Met Sally", ReleaseDate = DateTime.Parse("1989-1-11"), Genre = "Romantic Comedy", Price = 7.99M }); }

   update-database , Seed ,

   Rating , Rating , ,Rating , , Note、Screenwriters...; Rating, , , Rating

  add-migration Ratingupdate-database

   , Rating

   , add-migration   update-database  ; , 。

   update-database , Migrations

  http://www.asp.net/mvc/overview/older-versions/getting-started-with-aspnet-mvc4/adding-a-new-field-to-the-movie-model-and-table