¿ObjectContext reutilizable o ObjectContext nuevo para cada conjunto de operaciones?

Soy nuevo en Entities Framework y estoy empezando a jugar con él en mi tiempo libre. Una de las principales preguntas que tengo es sobre cómo manejar ObjectContexts.

Lo que generalmente se prefiere / recomienda de estos:

Esta

public class DataAccess{

    MyDbContext m_Context;

    public DataAccess(){
        m_Context = new MyDbContext();        
    }

    public IEnumerable<SomeItem> GetSomeItems(){
        return m_Context.SomeItems;
    }

    public void DeleteSomeItem(SomeItem item){
        m_Context.DeleteObject(item);
        m_Context.SaveChanges();
    }
}

¿O esto?

public class DataAccess{

    public DataAccess(){ }

    public IEnumerable<SomeItem> GetSomeItems(){
        MyDbContext context = new DbContext();
        return context.SomeItems;
    }

    public void DeleteSomeItem(SomeItem item){
        MyDbContext context = new DbContext();
        context.DeleteObject(item);
        context.SaveChanges();
    }
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta