Entity Framework desechando con controladores asíncronos en Web api / MVC

Tengo esta pequeña muestra de código:

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();
    }
}

Cada ApiController / Controller implementa una interfaz IDisposable. Entonces, en el método Dispose, quiero liberar cualquier recurso como DbContext. Pero si se usa async, este método Dispose llama a la primera aparición de wait. Entonces, después de esperar, ya tengo DbContext dispuesto. Entonces, ¿cuál es la mejor manera de deshacerse de los contextos EF cuando se utiliza asíncrono? ¿Resulta que no es posible confiar en el método Dispose en el controlador?