Korzystanie z oddzielnego projektu migracji
Możesz przechowywać migracje w innym projekcie niż ten, który zawiera plik DbContext
. Można również użyć tej strategii, aby zachować wiele zestawów migracji, na przykład jeden na potrzeby programowania, a drugi na potrzeby uaktualnień z wersji do wydania.
Napiwek
Przykład z tego artykułu można zobaczyć w witrynie GitHub.
Kroki
Utwórz nową bibliotekę klas.
Dodaj odwołanie do projektu DbContext.
Przenieś migracje i pliki migawek modelu do biblioteki klas.
Napiwek
Jeśli nie masz żadnych istniejących migracji, wygeneruj ją w projekcie zawierającym obiekt DbContext, a następnie przenieś ją. Jest to ważne, ponieważ jeśli projekt migracji nie zawiera istniejącej migracji, polecenie Add-Migration nie będzie mogło odnaleźć elementu DbContext.
Konfigurowanie zestawu migracji:
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));
Dodaj odwołanie do projektu migracji z projektu startowego.
<ItemGroup> <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" /> </ItemGroup>
Jeśli spowoduje to zależność cykliczną, możesz zaktualizować podstawową ścieżkę wyjściową projektu migracji :
<PropertyGroup> <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath> </PropertyGroup>
Jeśli wszystko zostało wykonane poprawnie, powinno być możliwe dodanie nowych migracji do projektu.
dotnet ef migrations add NewMigration --project WebApplication1.Migrations