Нет, вам не нужно вызывать detach на ваших сущностях.Однако, если вы сделаете что-то вроде:
var people = Context.Person.Where(p => p.FirstName == "John");
и затем избавитесь от своего контекста, люди сгенерируют исключение, потому что IEnumerable отложил выполнение.Выполнение этого:
var people = Context.Person.Where(p => p.FirstName == "John").ToList();
позволит вам по-прежнему использовать свой список людей.
Далее,
var john = Context.Person.FirstOrDefault(p => p.Id == 342);
будет работать после удаления контекста, потому что вы получиликонкретная сущность, а не перечисление.