У меня есть класс, который использует 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, чтобы сохранить тот же контекст данных.
Кажется, я часто вижу подобные вещи в своем коде, и меня беспокоит стоимость создания и выпуска всех этих контекстов данных. У кого-нибудь есть мнение относительно того, стоит ли вкладывать дополнительную работу, чтобы исключить создание и удаление этих контекстов?