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.