Help us understand the problem. What is going on with this article?

[ASP.NET][Entity Framework] ASP.NET Core で Code First のマイグレーション自動適用

More than 1 year has passed since last update.

Entity Framework Core で add されたマイグレーションは以下のコマンドでデータベースに手動適用できます。

[パッケージマネージャーコンソール]

Update-Database -Context FooContext

[CLI コマンド]

dotnet ef database update --context FooContext

ASP.NET Core でアプリケーション起動時にマイグレーションを自動適用させるためには、Program.Main メソッドに次のように記述します。

public static void Main(string[] args)
{
    var host = CreateWebHostBuilder(args).Build(); // ASP.NET Core 2.1~ の場合

    using (var scope = host.Services.CreateScope())
    {
        var services = scope.ServiceProvider;
        try
        {
            var context = services.GetRequiredService<FooContext>();

            // 自動マイグレーション適用
            context.Database.Migrate();

            // 初期データ生成
            // ※Data フォルダ内にカスタムクラスを作成してデータ生成コードを記述しておく。
            DbInitializer.Initialize(context);
        }
        catch (Exception ex)
        {
            var logger = services.GetRequiredService<ILogger<Program>>();
            logger.LogError(ex, "データベース初期構成中にエラーが発生しました。");
        }
    }

    host.Run();
}

※Startup.Configure に記述すると Add-Migration で実行されてしまいます。(ASP.NET Core 2.0 で確認)

CodeOne
【品質と生産性にこだわるシステム開発】 .NET(C#/VB.NET)専門・リモート開発歴10年。即日・1時間から頼める常駐しないエンジニア。確かな技術で開発チームを手堅くサポートします。
https://codeone.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした