ASP - コアが起動時にEFコアのSQL DBを移行する

asp.net-core c# entity-framework-core

質問

私のASPコアWeb APIで、DBがEFコアを使用した最新の移行に移行されることを保証できますか?これはコマンドラインで行うことができますが、私はプログラムでそれをやりたいのです。

更新

Janshair Khanの答えに基づいて私はこのヘルパークラスを考え出しました:

using Microsoft.AspNetCore.Builder;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MyWebApi.Models;

namespace MyWebApi
{
    public static class DataSeeder
    {
        public static void SeedData(this IApplicationBuilder app)
        {
            var context = app.ApplicationServices.GetService<MyContext>();

            if (!context.Database.EnsureCreated())
                context.Database.Migrate();
        }
    }
}

このようにStartup.cs Configureメソッドから呼び出すことができます:

app.SeedData();

受け入れられた回答

あなたは使うことができます

db.Database.EnsureCreated();

あなたの現在のモデルであなたのdbを最新にする。移行を有効にする場合は(その後の移行が疑われる場合)、

db.Database.Migrate();

その後の移行を時間の経過とともに進めてください。


人気のある回答

db.Database.EnsureCreated()への呼び出しに関する資料からのメモ:

このAPIはデータベースを作成するためにマイグレーションを使用しないことに注意してください。さらに、作成されたデータベースは後でマイグレーションを使用して更新することはできません。リレーショナルデータベースをターゲットとし、移行を使用している場合は、DbContext.Database.Migrate()メソッドを使用してデータベースを確実に作成し、すべての移行を適用することができます。

あなただけのdb.Database.Migrate()を呼び出すことができます。

ソースからのコメントは、 ここで宣言の上に見つかりまし



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ