2016-04-15 12 views
0

私はasp.net mvc を学習しています。私のプロジェクトに移行を追加すると、3つのメソッド(seed、upとdown)を持つ2つのファイルが追加されます。移行ファイルのupメソッドとdownメソッドの違い

私は上の方法と下の方法の違いは分かりません あなたは私のためにそれを説明できますか?

これは私の上下の方法です: これはどういう意味ですか?事前に

public override void Up() 
     { 
      AddColumn("dbo.Projets", "Description", c => c.String()); 
      AddColumn("dbo.Projets", "UtilisateurID", c => c.Int(nullable: false)); 
      AlterColumn("dbo.Projets", "etat", c => c.Int()); 
      CreateIndex("dbo.Projets", "UtilisateurID"); 
      AddForeignKey("dbo.Projets", "UtilisateurID", "dbo.Utilisateurs", "UtilisateurID", cascadeDelete: true); 
     } 

     public override void Down() 
     { 
      DropForeignKey("dbo.Projets", "UtilisateurID", "dbo.Utilisateurs"); 
      DropIndex("dbo.Projets", new[] { "UtilisateurID" }); 
      AlterColumn("dbo.Projets", "etat", c => c.String()); 
      DropColumn("dbo.Projets", "UtilisateurID"); 
      DropColumn("dbo.Projets", "Description"); 
     } 

おかげ

答えて

3

DB移行は、Entity Frameworkのモデルに加えられた変更を反映するために、データベースに変更を加えます。これらの変更は、Upメソッドを使用してデータベースに追加されます。

変更をロールバックする場合(TFSやGitでチェンジセットをロールバックするなど)、データベースの変更はロールバックする必要があります。そうしないと、Entity Frameworkモデルがデータベースと同期しないためです。これはDownメソッドの目的です。これは、データベースに対してUpメソッドが実行されたときに実行された、データベースに対するすべての変更を元に戻します。

Seed方法は、あなたがデータベースのモデルを変更したときに、時には必要とされているInsertUpdateまたはDeleteデータへの機能を提供します。したがって、Seedメソッドはオプションで、既存のデータを変更するか、モデルを機能させるために新しいデータを追加する必要がある場合にのみ必要です。

+0

あなたの答えは非常に明確です!どうもありがとう ! – kokomoi

関連する問題