2017-12-29 35 views
0

シードフォルダーMyProject.EntityFrameworkCoreプロジェクトには、初期データをデータベースに書き込むコードがあります。新しいエンティティを追加した後に初期データを書き込む方法は?

データベースに新しいエンティティを設定するコードを追加すると、コードはどこでどのように呼び出されますか?

.NET Coreと完全な.NET Frameworkのバージョンは同じ方法で動作しますか?

答えて

1

それが実行される:YourEntityFrameworkModulePostInitialize方法で呼び出さアプリケーションの起動、オン

  1. public override void PostInitialize() 
    { 
        if (!SkipDbSeed) 
        { 
         SeedHelper.SeedHostDb(IocManager); 
        } 
    } 
    
  2. あなたは移行プロジェクトをビルドし、.exeファイルを実行した場合RunメソッドMultiTenantExecuter :カスタムエンティティを移入するために新しいコードを追加する場合

    public void Run(bool skipConnVerification) 
    { 
        // ... 
    
        Log.Write("HOST database migration started..."); 
    
        try 
        { 
         _migrator.CreateOrMigrateForHost(SeedHelper.SeedHostDb); 
        } 
        // ... 
    } 
    

thisのように、追加する前にチェックすることを忘れないでください:

var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName); 
if (defaultEdition == null) 
{ 
    // ... 

    /* Add desired features to the standard edition, if wanted... */ 
} 

はい、.NETのコアと完全な.NET Frameworkのバージョンを同じように動作します。

+0

は、1?プロダクションDBに使用されていますか? – alex

+0

両方の質問にはいります。 – aaron

+0

@alex問題を解決しましたか? –

関連する問題