Кэширование DbContexts Entity Framework на запрос

У меня есть несколько классов, основанных на System.Entity.Data.DbContext. Они используют несколько раз запрос в разных концах веб-приложения - дорого ли создавать их экземпляры?

Я кэшировал их копию в HttpContext.Current.Items, потому что считал неправильным иметь несколько копий их на запрос, но теперь я обнаружил, что он не удаляется автоматически из HttpContext в конце запроса. Прежде чем я приступил к написанию кода для его удаления (в Application_EndRequest), я подумал, что переадресовал ситуацию, поскольку действительно нет смысла кэшировать их, если я должен просто создать их экземпляры там, где они мне нужны, и утилизировать их здесь и тогда. ] Подобные вопросы задавали в Интернете, но я не могу найти тот, который точно отвечает на мой вопрос. Извините, если я кого-то повторяю.

Обновление

Я обнаружил, что удаление контекстов, вероятно, не имеет значения в этом сообщении в блоге, но мне все еще интересно услышать стоят ли они вообще дорого при создании экземпляров. В принципе, существует ли за кулисами много магии EF, которой я бы хотел избежать слишком часто?

5
задан sjmeverett 5 July 2011 в 11:18
поделиться