Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda mungkin ingin menyimpan migrasi Anda dalam proyek yang berbeda daripada proyek yang berisi DbContext. Ini disarankan jika proyek Anda menggunakan jenis proyek khusus platform, seperti WinUI, Xamarin, MAUI, Blazor, atau Azure Functions, atau jika menargetkan pengidentifikasi runtime tertentu (RID). Anda juga dapat menggunakan strategi ini untuk mempertahankan beberapa set migrasi, misalnya, satu untuk pengembangan dan satu lagi untuk peningkatan rilis-ke-rilis.
Tip
Anda dapat melihat sampel artikel ini di GitHub.
Steps
Buat pustaka kelas baru.
Tambahkan referensi ke proyek DbContext Anda.
Pindahkan migrasi dan file snapshot model ke perpustakaan kelas.
Tip
Jika Anda tidak memiliki migrasi yang ada, buat migrasi dalam proyek yang berisi DbContext, lalu pindahkan. Ini penting karena jika proyek migrasi tidak berisi migrasi yang ada, perintah Add-Migration tidak akan dapat menemukan DbContext.
Konfigurasikan rakitan migrasi:
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));Tambahkan referensi ke proyek migrasi Anda dari proyek startup .
<ItemGroup> <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" /> </ItemGroup>Jika ini menyebabkan dependensi melingkar, Anda dapat memperbarui jalur output dasar proyek migrasi sebagai gantinya:
<PropertyGroup> <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath> </PropertyGroup>
Jika Anda melakukan semuanya dengan benar, Anda harus dapat menambahkan migrasi baru ke proyek.
dotnet ef migrations add NewMigration --project WebApplication1.Migrations
Tip
Jika aplikasi Anda menggunakan injeksi dependensi, pertimbangkan untuk menerapkan IDesignTimeDbContextFactory<TContext> dalam proyek migrasi Anda. Ini memungkinkan alat EF untuk membuat DbContext Anda tanpa perlu menjalankan proyek startup. Untuk informasi selengkapnya, lihat Dari pabrik waktu desain.