entity-framework-6 - 読み方 - visual studio nuget 参照



パッケージマネージャコンソールからカスタムのシードメソッドを実行することは可能ですか? (1)

パッケージマネージャコンソールでUpdate-Databaseを実行すると、シードプロセスが実行されます。 別のコマンドを実行して他のシードコマンドを実行することはできますか?

何かのようなもの:

Seed-Test-Data

いくつかのテストデータを開発者のローカルデータベースに送ります。

通常のシードメソッドでこのコマンドを実行したくないのは、移行が実行されたときに運用データベースで実行されるためです。


通常のシードを使用するだけで、コンテキストが使用しているサーバを確認し、それに応じて動作します。 いずれかのホワイトリストのdevデータベースまたはブラックリストをprodサーバー:

internal sealed class Configuration : DbMigrationsConfiguration<ApplicationDbContext>
{
    protected override void Seed(ApplicationDbContext context)
    {
        if (context.Database.Connection.DataSource != "ProductionServer")
        {
            if (!context.MyTable.Any())  // If table is empty, seed it...
            {
                context.MyTable.AddOrUpdate(
                  p => p.ID,
                       new MyTable{ ID = 1, FullName = "Mary Peters" },
                       new MyTable{ ID = 2, FullName = "Mike Lambson" },
                       new MyTable{ ID = 3, FullName = "Steve Miller" }
                );
            }


        }
        ...
    }
}

また、web.configの環境を確認するための設定を追加することもできます。

if (ConfigurationManager.AppSettings["Environment"] == "DEV")
{
    ...
}




ef-migrations