У меня есть класс, который использует linq для доступа к базе данных. Одни методы вызывают другие. Например:
class UserManager
{
public User[] getList()
{
using(var db = new MyContext())
{
return db.Users.Where(item => item.Active == false);
}
}
public User[] addUser(string name)
{
using(var db = new MyContext())
{
db.Users.InsertOnSubmit(new User() { id = Guid.NewId(), name = name, active = false ...});
}
return getList();
}
...
При вызове addUser от меня требуется вернуть новый список. (Я знаю, что в нынешнем виде это не лучший дизайн, но я исключил детали для простоты.) Однако вызов getList создает второй контекст данных.
Я мог бы дополнить это дополнительными методами, а именно:
public getList()
{
using(var db = new MyContext())
return getList(db);
}
public getList(MyContext db)
{
...
}
Затем замените мой вызов в addUser, чтобы сохранить тот же контекст данных.
Кажется, я часто вижу подобные вещи в своем коде, и меня беспокоит стоимость создания и выпуска всех этих контекстов данных. Есть ли у кого-нибудь мнение относительно того, стоит ли прилагать дополнительные усилия для устранения создания и удаления этих контекстов?