Абстрагирование HttpContext.Current для внедрения в MVC + Шаблон репозитория + Entity Framework - PullRequest
0 голосов
/ 22 апреля 2011

Я задал вопрос вчера и работал с ObjectContext в репозитории. Я пытался понять, насколько «здоровым» или противоречивым шаблоном является передача открытого контекста контроллеру. Короткий ответ по всему интернету состоял в том, что обычно лучше создать один ObjectContext для запроса и сделать это с помощью HttpContext.Current. В настоящее время я использую Entity Framework 4.0, который генерирует мой ObjectContext при создании экземпляра модели. Я думаю, что понимаю это правильно, потому что мне нужно убедиться, что всякий раз, когда вызывается HttpContext.Current, я могу извлечь свой ObjectContext из элементов, но мне не нравится идея использования конкретного класса, так как я не знаю, Всегда буду использовать эту модель EF. Я хотел бы, чтобы HttpContext.Current возвращал что-то инъекционное, чтобы Ninject мог связать новый контекст с моим конкретным классом (который должен облегчить переключение позже), который содержит открытый ObjectContext для моей модели EF.

Раньше я был разработчиком WebForms на .Net 2.0, поэтому пытаться понять этот новый материал пока немного медленно. HttpContext сопоставим с Session, но только для запроса страницы без сохранения состояния? Мол, он генерируется, когда делается запрос, и как только страница отображается, он удаляется?

Какая семантика используется для фактического расширения объекта HttpContext.Current для возврата экземпляра класса, который содержит мой ObjectContext?

Я действительно надеюсь, что все имело смысл. Мой лоб нахмурился, просто пытаясь донести мой вопрос до слов. Любое руководство или статьи по этому вопросу были бы очень благодарны! Спасибо!

(я использую ASP.Net 4.0, MVC 2, Entity Framework 4.0, Visual Studio 2010, Ninject 2.2.1 и использую шаблон репозитория)

...