Утилита Entity Framework с асинхронными контроллерами в Web API / MVC

У меня есть этот маленький пример кода:

public class ValueController : ApiController
{
    private EstateContext _db;

    public ValueController()
    {
        _db = new EstateContext();
    }

    [HttpPost]
    public async void DoStuff(string id)
    {
        var entity = await _db.Estates.FindAsync(id); //now our method goes out and Dispose method is calling
        //returns here after disposing
        _db.SaveChanges(); // _db is disposed

    }

    protected override void Dispose(bool disposing)
    {
        base.Dispose(disposing);
        _db.Dispose();
    }
}

Каждый ApiController / Controller реализует интерфейс IDisposable. Поэтому в методе Dispose я хочу освободить любые ресурсы, такие как DbContext. Но если используется асинхронный вызов, этот метод Dispose вызывает при первом появлении await. Так что после ожидания у меня уже есть DbContext. Так как же лучше всего использовать контексты EF, когда используется асинхронность? Получается, что нельзя полагаться на метод Dispose в контроллере?