Uso correcto de la declaración "Using" para el datacontext
Estoy usando Linq para Entidades y últimamente, encontré que muchas personas recomiendan envolver el datacontext en una declaración de uso como esta:
<code>Using(DataContext db = new DataContext) { var xx = db.customers; } </code>
Esto tiene sentido. Sin embargo, no estoy seguro de cómo incorporar esta práctica en mi modelo. Por ejemplo: tengo una interfaz (llamémoslo cliente) y se implementa en un repositorio como este:
<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>
Luego, para aprovechar la ventaja de usar, tendré que cambiar los métodos para tener este aspecto:
<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>
Mi pregunta es:¿La recomendación de usar "Usar" es realmente tan buena? Tenga en cuenta que este cambio será importante, tengo aproximadamente 25 interfaces / combinaciones de repositorio, y cada uno tiene aproximadamente 20-25 métodos, sin mencionar la necesidad de volver a probar todo después de terminar. ¿Hay otra manera?
¡Gracias!
Edgar