Entity Framework mit asynchronen Controllern in Web API / MVC

Ich habe dieses kleine Codebeispiel:

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

Jeder ApiController / Controller implementiert eine IDisposable-Schnittstelle. In der Dispose-Methode möchte ich also Ressourcen wie DbContext freigeben. Wenn jedoch Async verwendet wird, ruft diese Dispose-Methode beim ersten Auftreten von wait auf. Also nachdem ich gewartet habe habe ich DbContext schon entsorgt. Wie lassen sich EF-Kontexte am besten entsorgen, wenn Async verwendet wird? Es stellt sich heraus, dass es nicht möglich ist, sich auf die Dispose-Methode in der Steuerung zu verlasse

Antworten auf die Frage(4)

Ihre Antwort auf die Frage