Sdílet prostřednictvím


Použití samostatného projektu migrace

Migrace můžete chtít uložit do jiného projektu, než je ten, který obsahuje .DbContext Tuto strategii můžete použít také k údržbě více sad migrací, například jedné pro vývoj a další pro upgrady typu release-to-release.

Návod

Ukázku tohoto článku najdete naGitHubu .

Postup

  1. Vytvořte novou knihovnu tříd.

  2. Přidejte odkaz na projekt DbContext.

  3. Přesuňte migrace a soubory snímků modelu do knihovny tříd.

    Návod

    Pokud nemáte žádné existující migrace, vygenerujte ji v projektu obsahujícím DbContext a poté ji přesuňte. To je důležité, protože pokud projekt migrace neobsahuje existující migraci, příkaz Add-Migration nebude moct najít DbContext.

  4. Nakonfigurujte sestavení migrace:

    services.AddDbContext<ApplicationDbContext>(
        options =>
            options.UseSqlServer(
                Configuration.GetConnectionString("DefaultConnection"),
                x => x.MigrationsAssembly("WebApplication1.Migrations")));
    
  5. Přidejte odkaz na projekt migrace z výchozího projektu.

    <ItemGroup>
      <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" />
    </ItemGroup>
    

    Pokud to způsobí cyklické závislosti, můžete místo toho aktualizovat základní výstupní cestu projektu migrace.

    <PropertyGroup>
      <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath>
    </PropertyGroup>
    

Pokud jste všechno udělali správně, měli byste být schopni do projektu přidat nové migrace.

dotnet ef migrations add NewMigration --project WebApplication1.Migrations