2012-01-30 14 views
0

SeedDataクラスを作成し、テーブルに値を設定する値を入力しました。アプリケーションを実行すると、エラーは発生しませんが、テーブルにはシードデータが設定されていません。EF 4.1 SeedDataにテーブルが設定されていません

私は私がのApplication_Start

System.Data.Entity.Database.SetInitializer(new EDWv2.Models.SeedData()); 

以下のリンクを持つグローバルASAXで運

でDropCreateDatabaseAlwaysとDropCreateIfModelChangesの両方を試してみましたASP.NET MVC3およびEF 4.1

を使用していますMy SeedDataクラスは、次のように定義されます。

public class SeedData : DropCreateDatabaseAlways<EDWContext> 
{ 
    protected override void Seed(EDWContext context) 
    { 

     var controlsystemdesignation = new List<ControlSystemDesignation> 
     { 
      new ControlSystemDesignation { Name = "BA"}, 
      new ControlSystemDesignation { Name = "BP"}, 
      new ControlSystemDesignation { Name = "RA"}, 
      new ControlSystemDesignation { Name = "GA"}, 
      new ControlSystemDesignation { Name = "WA"}, 
      new ControlSystemDesignation { Name = "WB"}, 
      new ControlSystemDesignation { Name = "WC"}, 
      new ControlSystemDesignation { Name = "EA"}, 
      new ControlSystemDesignation { Name = "EB"}, 
      new ControlSystemDesignation { Name = "EC"}, 
      new ControlSystemDesignation { Name = "DA"}, 
      new ControlSystemDesignation { Name = "DB"}, 
      new ControlSystemDesignation { Name = "DC"}, 
      new ControlSystemDesignation { Name = "FA"}, 
      new ControlSystemDesignation { Name = "FB"}, 
      new ControlSystemDesignation { Name = "SA"}, 
      new ControlSystemDesignation { Name = "SB"}, 
      new ControlSystemDesignation { Name = "SC"}, 
      new ControlSystemDesignation { Name = "LA"}, 
      new ControlSystemDesignation { Name = "LD"}, 
      new ControlSystemDesignation { Name = "DP"}, 
      new ControlSystemDesignation { Name = "PA"}, 
      new ControlSystemDesignation { Name = "PB"}, 
      new ControlSystemDesignation { Name = "PC"}, 
      new ControlSystemDesignation { Name = "UL"}, 
      new ControlSystemDesignation { Name = "UA"} 
    }; 
     base.Seed(context); 
     context.SaveChanges(); 
    } 
} 

のおかげで、あなたはcontextControlSystemDesignationエンティティを追加する必要が

ジェイソン

答えて

2

public class SeedData : DropCreateDatabaseAlways<EDWContext> 
{ 
    protected override void Seed(EDWContext context) 
    { 

     var controlsystemdesignation = new List<ControlSystemDesignation> 
     { 
      new ControlSystemDesignation { Name = "BA"}, 
      new ControlSystemDesignation { Name = "BP"}, 
      new ControlSystemDesignation { Name = "RA"}, 
      new ControlSystemDesignation { Name = "GA"} 
      //... 
     }; 

     controlsystemdesignation.ForEach(item => context.ControlSystemDesignations.Add(item)); 

     context.SaveChanges(); 
    } 
} 
+0

チップをご利用いただきありがとうございます。データを入力するのに役立ちました。 – Jason

0

あなたのコンテキストの一部であるべきDbSet<ControlSystemDesignation>にそれらのインスタンスを追加する必要があります。

context.ControlSystemDesignations.Add(instance); 
+0

インスタンスが追加され、問題が解決されました – Jason

関連する問題