这是我的Program.cs
美元
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddTransient<DatabaseSeeder>();
builder.Services.AddScoped<IWeatherForecastService, WeatherForecastService>();
builder.Services.AddDbContext<RestaurantDbContext>();
var app = builder.Build();
using (var scope = app.Services.CreateScope())
{
var serviceProvider = scope.ServiceProvider;
var databaseSeeder = serviceProvider.GetRequiredService<DatabaseSeeder>();
try
{
await databaseSeeder.SeedDatabaseAsync();
Console.WriteLine("Seed is up.");
}
//...
}
这是DatabaseSeeder.cs
public class DatabaseSeeder
{
private readonly RestaurantDbContext _context;
public DatabaseSeeder(RestaurantDbContext context);
public async Task SeedDatabaseAsync()
{
_context.Restaurants.AddRange(GetRestaurants());
await _context.SaveChangesAsync();
}
public IEnumerable<Restaurant> GetRestaurants()
{
IEnumerable<Restaurant> restaurants = new List<Restaurant>()
{
// here some samples
};
return restaurants;
}
}
那么,我如何才能将我的Program.cs
代码更改为使用IHostedService
作为数据种子呢?
我不明白什么是IHostedService
,也找不到好的来源来阅读它.