При работе с проектом.NET, в котором используется миграция базы данных, крайне важно применить все ожидающие миграции перед запуском проекта. Это гарантирует актуальность схемы базы данных и соответствие последним изменениям в вашей кодовой базе. В этой статье мы рассмотрим несколько методов применения ожидающих миграций в проекте.NET, сопровождаемые примерами кода. Давайте погрузимся!
Метод 1: интерфейс командной строки (CLI) — обновление базы данных dotnet ef
Инструмент CLI Entity Framework Core (EF Core) обеспечивает простой способ применения ожидающих миграций. Откройте командную строку или окно терминала, перейдите в каталог проекта и выполните следующую команду:
dotnet ef database update
Эта команда применяет все ожидающие миграции к целевой базе данных.
Метод 2. Программное применение миграции – DbContext.Database.Migrate()
Если вы хотите программно применить ожидающие миграции в своем коде.NET, вы можете использовать метод Migrate(), доступный в DbContextкласс. Вот пример того, как его использовать:
using Microsoft.EntityFrameworkCore;
// ...
public class MyDbContext : DbContext
{
// ...
public void ApplyMigrations()
{
Database.Migrate();
}
}
При вызове ApplyMigrations()на вашем экземпляре DbContextбудут применены ожидающие миграции.
Метод 3: Конфигурация запуска — SureDatabaseCreated() и ОбеспечениеMigrated()
Если вы используете ASP.NET Core, вы можете воспользоваться преимуществами EnsureDatabaseCreated()и EnsureMigrated()в методе Configure()вашего стартового класса. Вот пример:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.EntityFrameworkCore;
// ...
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyDbContext dbContext)
{
// ...
dbContext.Database.EnsureCreated();
dbContext.Database.Migrate();
// ...
}
}
Вызывая EnsureCreated()и Migrate()в контексте базы данных в методе Configure(), вы гарантируете, что база данных создана (если это не так). t существует) и применяются все ожидающие миграции.
В этой статье мы рассмотрели три метода применения ожидающих миграций в проекте.NET. Независимо от того, предпочитаете ли вы использовать интерфейс командной строки, программно применять миграции или включать миграции в конфигурацию запуска, эти методы помогут вам поддерживать схему базы данных в актуальном состоянии. Будьте внимательны при выполнении миграции, чтобы обеспечить бесперебойную и безошибочную работу вашего проекта.NET.