Будет ли dbcontext удаляться и закрываться при таком использовании adddbcontext? - PullRequest
0 голосов
/ 16 июня 2020

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
       services.AddDbContext<TestContext>(options => options.UseSqlServer("dbconnection"));
}

TestController.cs

private readonly TestContext _db;
public TestController(TestContext db)
{
     _db = db;
}
public void Get()
{
    DALUser dal = new DALUser(_db);
    var list = dal.Get();
}

DALUser.cs

private readonly TestContext _db;
public DALUser(TestContext db)
{
     _db = db;
}
public IQueryable<User> Get()
{
    _db.Users.AsQueryable();
}

Будет ли dbcontext удаляться и закрываться после выполнения Get () функция?

1 Ответ

1 голос
/ 16 июня 2020

Время жизни по умолчанию для DatabaseContext ограничено. Итак, в вашем веб-приложении DatabaseContext удаляется после завершения вашего HTTP-запроса (TestController-Get).

        public static IServiceCollection AddDbContext<TContext>(
        [NotNull] this IServiceCollection serviceCollection,
        [CanBeNull] Action<DbContextOptionsBuilder> optionsAction = null,
        ServiceLifetime contextLifetime = ServiceLifetime.Scoped,
        ServiceLifetime optionsLifetime = ServiceLifetime.Scoped)
        where TContext : DbContext
...