.NET Core 2.1 - seedowanie bazy danych

0

Cześć!
Potrzebuję wypełnić wszystkie tabele w DB podstawowymi danymi. Czy ktoś może polecić mi sprawdzony patent na dokonanie tego w jakiś "cywilizowany" sposób?

Nie chciałbym tego robić przez HasData, aby nie generować masy kodu w plikach migracyjnych:

modelBuilder.Entity<SampleEntity>().HasData(
    new SampleEntity { Id= 1, Name= "Sample" });

W .NET 4.8 można było skorzystać z DbMigrationsConfiguration, być może jest jakiś odpowiednik na Core?

Obecnie radzę sobie tak:
W Program.cs tworzę scope, do klasy seed-ującej przekazuję ServiceProvider, z którego wyciągam DbContext i robię odpowiednie inserty na tabelach

using (var scope = newHost.Services.CreateScope())
{
    var services = scope.ServiceProvider;

    Configuration.Seed(services);
}
0

@mgrzegor: Jakiej bazy używasz? Bo generalnie istnieją wtyczki do MS-SQL (do innych nie wiem) do generowania testowych danych i spokojnie możesz sobie zapylić bazę kilkoma kliknięciami. Tylko pytanie czy chcesz/możesz to w ten sposób zrobić czy chcesz koniecznie z kodu. Ewentualnie masz stronki do generowania takich danych: https://www.generatedata.com/

1

@mgrzegor: Ja bym użył NBuildera i Fakera w takim razie
https://github.com/nbuilder/nbuilder
https://github.com/oriches/faker-cs

0

@mgrzegor: No to może tak: trzymasz sobie rekordy w CSV i odczytujesz sobie w Seed() i po każdym Update-Database jesteś z tym co miałeś w CSV?

1 użytkowników online, w tym zalogowanych: 0, gości: 1