質問: 私はEF Core 2.1でデータをシードする新しい方法を使用しており、開発環境用のデータをシードしたいと考えています。 当初私はこれを試した: ``` protected override void OnModelCreating(ModelBuilder modelBuilder) { if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != EnvironmentName.Development) { return; } modelBuilder.Entity().HasData(new Customer { ... }); } ``` しかし、私は、生成された移行が常に顧客をデータベースに挿入することに気付きました。 環境ごとにデータシードを制限する方法はありますか?
回答: このように`ConfigureServices`メソッドのStartup.csでできると思います ``` if (env.IsDevelopment()) // then seed data ``` Asp.Net Coreにデータをシードする推奨方法を次に示します(ここでは環境を確認していません)。 こちらのサンプルをご覧ください そして、 このファイルは実行時にシードに使用されます