Ordnungsgemäße Verwendung der Anweisung "Using" für den Datenkontext

Ich verwende Linq to Entities und in letzter Zeit habe ich festgestellt, dass viele Leute empfehlen, den Datenkontext in eine using-Anweisung wie die folgende zu packen:

<code>Using(DataContext db = new DataContext) {
    var xx = db.customers;
}
</code>

Das macht Sinn. Ich bin mir jedoch nicht sicher, wie ich diese Vorgehensweise in mein Modell integrieren soll. Beispiel: Ich habe eine Schnittstelle (nennen wir sie "Kunde"), die von einem Repository wie folgt implementiert wird:

<code>namespace Models
{
    public class rCustomer : iCustomer
    {

        readonly DataContext db = new DataContext();

        public customer getCustomer(Guid id)
        {
            return db.customers.SingleOrDefault(por => por.id == id);
        }

        public iQueryable<customer> getTopCustomers()
        {
            return db.customers.Take(10);
        }

        //*******************************************
        //more methods using db, including add, update, delete, etc.
        //*******************************************

    }
}
</code>

Um die Vorteile der Verwendung zu nutzen, muss ich die Methoden folgendermaßen ändern:

<code>namespace Models
{
    public class rCustomer : iCustomer
    {
        public customer getCustomer(Guid id)
        {
            using(DataContext db = new DataContext()) {       
                return db.customers.SingleOrDefault(por => por.id == id);
            } 
        }

        public iQueryable<customer> getTopCustomers()
        {
            using(DataContext db = new DataContext()) {       
                 return db.customers.Take(10);
            } 
        }

        //*******************************************
        //more methods using db
        //*******************************************

    }
}
</code>

Meine Frage ist:die empfehlung zur verwendung von "using" ist wirklich so gut? Bitte bedenken Sie, dass diese Änderung von großer Bedeutung sein wird. Ich habe ungefähr 25 Schnittstellen / Repository-Kombinationen und jede hat ungefähr 20-25 Methoden, ganz zu schweigen von der Notwendigkeit, alles nach dem Abschluss erneut zu testen. Gibt es einen anderen Weg?

Vielen Dank!

Edgar.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage