При использовании EF Core и ASP. NET MVC Core не загружает данные как обычно в OnModelCreating. - PullRequest
0 голосов
/ 15 апреля 2020

Я использую новый метод HasData EF Core (3.1) в OnModelCreating для заполнения данных в ASP. NET Core (3.1) MVC проекте. Но даже OnModelCreating вызывается в контроллер, данные отсутствуют по веб-запросу. Хотя создание области действия и добавление данных при запуске приложения с последующим вызовом SaveChanges работает, как и ожидалось. В чем может быть причина того, что OnModelCreating не заполняет данные?

// Does not seed data
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
        modelBuilder
            .Entity<MyEntity>()
            .HasData(new MyEntity() { });
}

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    services.AddDbContext<MyContext>(options => options.UseInMemoryDatabase("MyDb"));
}

Контроллер:

private readonly ProductContext _context;
public ManufacturersController(ProductContext context)
{
    _context = context;
}

Но это работает, как и ожидалось, при вызове метода Main:

using (var scope = host.Services.CreateScope())
{
    var services = scope.ServiceProvider;
    var db = services.GetService<MyContext>();
    var myEntity= db.MyEntity.Add(new MyEntity{});
    db.SaveChanges();
}

Может ли это быть проблемой времени жизни объекта (контейнер Io C - asp. net по умолчанию)?

...