Cześć,
Przerabiam właśnie jeden tutorial poświęcony ASP.NET Core. Prowadzący używa tam C# < 9.0, w związku z tym posiada pliki Startup.cs oraz Program.cs. Ja swój projekt utworzyłem wraz z instrukcjami najwyższego poziomu, więc posiadam jedynie plik Program.cs bez definicji klas i metod. Prowadzący chcąc zaseedować nowo utworzone przez EF tabele pokazuje taki kod w pliku Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddScoped<RestaurantSeeder>();
// ...
}
public void ConfigureServices(IApplicationBuilder app, IWebHostEnvironment, RestaurantSeeder seeder)
{
seeder.Seed();
// ...
}
Ja w moich top-level statements nie mam problemu z zarejestrowaniem klasy RestaurantSeeder w kontenerze DI, ale nie wiem w jaki sposób wywołać metodę Seed()... W prowadzącego metodzie ConfigureServices zależność została wstrzyknięta, ale ja w top-level statements nie mam żadnej metody:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddTransient<IWeatherForecastService, WeatherForecastService>();
builder.Services.AddDbContext<RestaurantDbContext>();
builder.Services.AddScoped<RestaurantSeeder>();
// Add services to the container.
builder.Services.AddControllers();
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
Czy wiecie w jaki sposób mogę wywołać metodę Seed() klasy RestaurantSeeder wewnątrz pliku top-level statements?
Z góry dziękuję za pomoc!