Если вы действительно просто делаете такие базовые вещи, как это: Поиск, GetById, Сохранить, Создать и GetAll, я бы порекомендовал вам использовать репозитории. Если все сделано неправильно, репозитории могут стать очень плохими и неприятными, но если вы действительно ограничены этим набором операций, вы в основном описали репозиторий с этим набором операций.
Вы захотите взглянуть на способы извлечения дополнительной логики, например поиска, чтобы не создавать дублирующую логику.
Хранилища хороши и проверяемы, если вы не позволите им выйти из-под контроля. Я даю вам это предупреждение только потому, что я видел, как слишком много людей создавали классы монстров из хранилищ.
Репозитории работают с вашими объектами. Они в основном являются посредником, который обрабатывает сохранность ваших данных. Эта абстракция позволяет вам скрыть от остальной части вашего кода, как вы сохраняете свои данные. В этом случае реализации ваших репозиториев будут использовать LinqToSql, так как я полагаю, это то, что вы сказали, что использовали.
Существует множество ресурсов , объясняющих шаблон хранилища .