Мнение о повторном использовании контекста db в Linq

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

Кажется, я часто вижу подобные вещи в своем коде, и меня беспокоит стоимость создания и выпуска всех этих контекстов данных. Есть ли у кого-нибудь мнение относительно того, стоит ли прилагать дополнительные усилия для устранения создания и удаления этих контекстов?

7
задан JessicaB 16 October 2010 в 16:52
поделиться