Лучший шаблон репозитория для ASP.NET MVC

Недавно я изучил ASP.NET MVC (мне это нравится). Я работаю с компанией, которая использует внедрение зависимостей для загрузки экземпляра репозитория в каждом запросе, и я знаком с использованием этого репозитория.

Но сейчас я пишу пару собственных приложений MVC. Я не совсем понимаю, как и почему репозиторий, который использует моя компания, и я пытаюсь выбрать лучший подход для реализации доступа к данным.

Я использую C# и Entity Framework (все последние версии).

Я вижу три основных подхода к управлению доступом к данным.

  1. Обычный контекст БД в операторе using каждый раз, когда я обращаюсь к данным. Это просто и работает нормально. Однако, если два местоположения должны прочитать одни и те же данные в одном запросе, данные должны быть прочитаны дважды. (С одним репозиторием для каждого запроса один и тот же экземпляр будет использоваться в обоих местах, и я понимаю, что второе чтение просто вернет данные из первого чтения.)

  2. Типичный шаблон репозитория. По непонятным мне причинам этот типичный шаблон предполагает создание класса-оболочки для каждой таблицы, используемой из базы данных. Мне это кажется неправильным. На самом деле, поскольку они также реализованы как интерфейсы, технически я бы создал два класса-оболочки для каждой таблицы. EF создает для меня таблицы. Я не верю, что такой подход имеет смысл.

  3. Существует также общий шаблон репозитория, в котором один класс репозитория создается для обслуживания всех объектов-сущностей. Это имеет для меня гораздо больше смысла. Но имеет ли это смысл для других? Является ли ссылка выше лучшим подходом?

Я хотел бы получить информацию от других по этой теме. Вы пишете свой собственный репозиторий, используете один из вышеперечисленных или вообще делаете что-то другое. Поделись, пожалуйста.

65
задан Jonathan Wood 7 June 2012 в 03:21
поделиться