2017-03-27 2 views
0

EFコードの最初のシードメソッドを使用して、プロジェクトパラメータを展開します。いつでもiisを再起動すると、シードメソッドは再び動作し、データを更新します。なぜそれが再び呼ばれたのですか?IIS開始時に呼び出されるEFシード

当社の設定ファイル:

public Configuration() 
    { 
     AutomaticMigrationsEnabled = false; 
    } 

    protected override void Seed(FastVContext context) 
    { 

     #region Menu And Sub Menu 

     context.MenuItems.AddOrUpdate(x => x.Id, 
      new MenuItem() 
      { 
       Id = 1, 
       MenuName = "Özet", 
       Priority = 100, 
       cssClass = "fa fa-tachometer", 
       Controller = "Home", 
       PageURL = "/" 

      }, 
      new MenuItem() 
      { 
       Id = 2, 
       MenuName = "Genel Ayarlar", 
       Priority = 60, 
       cssClass = "fa fa-cogs", 
       Controller = null 

      }, 

}

そして、我々のコンテキストファイル

保護されたオーバーライドボイドOnModelCreating(DbModelBuilderのModelBuilder) {

 base.OnModelCreating(modelBuilder); 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 

。 。 }

+0

これは問題を解決しますか – kblau

答えて

0

このチュートリアルを行く: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

あなたはデータシーディングとDropCreateDatabaseIfModelChangesが行われる場所である初期化子を、スキップする属性disableDatabaseInitialization =「false」に使用することができます。

<contexts> 
    <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity" disableDatabaseInitialization="false"> 
    <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" /> 
    </context> 
</contexts> 
関連する問題