Я использую Linq to Entities, и в последнее время я обнаружил, что многие люди рекомендуют заключать контекст данных в оператор using, подобный этому:
Using(DataContext db = new DataContext) {
var xx = db.customers;
}
Это имеет смысл. Однако я не уверен, как включить эту практику в мою модель. Например, :У меня есть интерфейс (, назовем его клиентом ), и он реализован в репозитории, подобном этому :
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.
//*******************************************
}
}
. Затем, чтобы воспользоваться преимуществами использования, мне нужно изменить методы, чтобы они выглядели следующим образом: это:
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
//*******************************************
}
}
Мой вопрос::рекомендация использовать «Использование» действительно так хороша? Пожалуйста, примите во внимание, что это изменение будет значительным, у меня есть около 25 комбо интерфейсов/репозиториев, и каждый имеет около 20 -25 методов, не говоря уже о необходимости повторно -протестировать все после завершения.. Есть ли другой способ?
Спасибо!
Эдгар.