Рекомендуемый интерфейс IRepository и IRepository <T>в C # - PullRequest
5 голосов
/ 23 июля 2011

Я ищу простой интерфейс IRepository для моего веб-приложения mvc, Я много искал вокруг, и там столько же мнений, сколько и людей. Поэтому я решил спросить экспертов

Если вы можете порекомендовать интерфейсы IRepository и IRepository, которые обычно используются и отвечают базовым операциям CRUD и запросов (для поддержки фильтрации).

Если вам известны фреймворки, которые также включают в себя реализации и могут работать с EF 4, я был бы рад, если бы вы упомянули их.

Спасибо.

Редактировать : Поскольку @Ladislav предлагает альтернативу, всегда просто вызывайте linq для вызовов ADO.net из моего кода? Является ли хорошей идеей использовать репозиторий POCO, который абстрагирует создание пользовательских POCOS от моей бизнес-модели, у меня есть класс Jewel POCO, который необходимо анализировать по различным записям БД, это обычная практика для устаревших систем, где я не могу прикоснуться к архитектуре БД, но только к презентации

Ответы [ 2 ]

9 голосов
/ 23 июля 2011

Stop . Шаблоны следует использовать, когда они необходимы - когда они решают какую-то общую проблему - а не потому, что они существуют. Очевидно, что вам это сейчас не нужно, потому что вы не написали ни одного требования о том, что хранилище должно решить для вас - такие требования имеют решающее значение, если вы хотите выбрать «хороший» для начала. В любом случае, хороший, как правило, развивается в процессе разработки, чаще всего он не определяется заранее.

Также универсальный репозиторий с EF является одним из самых глупых шаблонов, которые я когда-либо использовал в своем собственном проекте. Хорошо только быть родителем конкретного репозитория. Он работает только в базовых сценариях, где вам чаще всего не нужен репозиторий.

Что-то прочитать: Какой смысл в общем хранилище

2 голосов
/ 23 июля 2011

Шаблон репозитория довольно прост ... вам не нужно использовать существующий фреймворк. Вы можете создать интерфейс (ы) самостоятельно. Есть много хороших примеров в блогах людей, которые строят свои собственные, а также позволяют им иметь почти 100% охват кода в своих тестах. Вот несколько примеров (но все они следуют одинаковым схемам):

Использование шаблона репозитория с Entity Framework (Гил Финк)

100% UNIT TESTABLE LINQ TO SQL REPOSITORY (Кази Манзур Рашид) - Я фактически следую некоторым его примерам в своей работе

Совместная работа: LINQ to SQL, IRepository, единица работы и внедрение зависимостей (Стюарт Харрис)

И есть еще тонна.

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

Надеюсь, это поможет! Удачи.

...