DataContext - это не шаблон репозитория, а активный шаблон записи.
Как только вы поймете разницу между ними, вы поймете ответ на свой вопрос.
Active Record - это объектно-ориентированное представление ваших данных в базе данных.
Репозиторий - это объект, который находится в модели вашего домена, если он у вас есть, это означает, что его открытый интерфейс полностью отделен от вашей технологии доступа к данным.
Вы используете LINQ или SQL для запроса вашей базы данных с помощью DataContext, и это имеет смысл, поскольку LINQ и SQL очень хороши для запроса данных.
Но когда вы запрашиваете свой репозиторий, поскольку мы больше говорим об объекте домена, чем о данных, мы используем шаблон спецификации , который на самом деле является языком мини-запросов, более подходящим для вашего домена.
В двух словах: Active Record = доступ к базе данных и данным, репозиторий = модель домена. В идеале, ваш клиент должен быть в состоянии понять структуру вашей доменной модели (так, помимо прочего, ваш репозиторий и классы спецификаций), но он не понимает, что такое DataContext, так как он является каналом разработчика.
Для ясности, «Пример шаблона репозитория в C # 2.0» не совсем то, что вы должны искать, «Пример шаблона репозитория», но внутренняя реализация будет использовать классический ADO вместо DataContext. .