Entity Framework Core 1.0 DbContext sem escopo para solicitação http

Eu entendi assistindo este vídeo com Rowan Millerhttps://channel9.msdn.com/Series/Whats-New-with-ASPNET-5/06 (no minuto 22) que a maneira de configurar o Entity Framework Core (anteriormente conhecido como EF7) em um aplicativo ASP.NET Core 1.0 (anteriormente conhecido como ASP.NET 5) emStartup.cs é o seguinte:

    public void ConfigureServices(IServiceCollection services)
    {
        //Entity Framework 7 scoped per request??
        services.AddEntityFramework()
            .AddSqlServer()
            .AddDbContext<MyDbContext>(options =>
            {
                options
                  .UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]);
            });

        //MVC 6
        services.AddMvc();
    }

e essaeste DbContext terá o escopo definido para uma solicitação http para que sempre que no código do pipeline http (incluindo middleware ou MVC) um DbContext seja usado, tenhamos certeza de que a instância injetada pelo contêiner de DI será a mesma.

Mas o problema é que parece não funcionar dessa maneira. Durante a vida útil do MVC, é verdade que a instância DbContext injetada é a mesma, mas conforme descrito aqui:Unidade de trabalho do Entity Framework Core 1.0 com middleware Asp.Net Core ou filtro Mvc Estou tentando conectar ao pipeline o seguinte middleware para obter algum tipo de Confirmação / Reversão centralizada depois que um controlador finaliza a execução:

public class UnitOfWorkMiddleware
{
    private readonly RequestDelegate _next;
    private readonly MyDbContext _dbContext;
    private readonly ILogger _logger;

    public UnitOfWorkMiddleware(RequestDelegate next, MyDbContext dbContext, ILoggerFactory loggerFactory)
    {
        _next = next;
        _dbContext = dbContext;
        _logger = loggerFactory.CreateLogger<UnitOfWorkMiddleware>();
    }

    public async Task Invoke(HttpContext httpContext)
    {
        await _next.Invoke(httpContext);
        _logger.LogInformation("Saving changes for unit of work if everything went good");
        await _dbContext.SaveChangesAsync();
    }
}

e esse middleware é imediatamente anterior ao MVC6 no pipeline

//inside Configure(IApplicationBuilder app) in Startup.cs
app.UseMiddleware<UnitOfWorkMiddleware>();
app.UseMvcWithDefaultRoute();

A instância DbContext no meu Middleware não é a mesma que a instância que está sendo injetada durante o tempo de vida do MVC.

Isso é esperado? Um DbContext não deve ter escopo definido para uma solicitação http? É possível alcançar o que eu estava tentando alcançar?

O plano B seria usar umFiltro global MVC 6 (se eu puder encontrar alguma documentação sobre como fazer isso). Suponho que fazendo parte da estrutura do MVC 6, a instância DbContext injetada será a mesma.

questionAnswers(1)

yourAnswerToTheQuestion