Замена шаблона хранилища на ORM? - PullRequest
0 голосов
/ 23 августа 2010

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

Похоже, что некоторые тяжеловесы отрасли настаивают на том, чтобы рекомендовать использовать ORM поверх шаблона репозитория и строить его на уровне DL.Таким образом, на уровне приложений вы будете использовать ORM напрямую, а не репозиторий.В качестве примера можно привести пост Айенде: http://ayende.com/Blog/archive/2009/04/17/repository-is-the-new-singleton.aspx, а также чтение «Microsoft® .NET: Разработка приложений для предприятия» Дино Эспизито, где он рекомендует то же самое.

Я просто не решаюсь связать свой DL с ORM.Я не использовал nHibernate и имею только освещенность LINQ2SQL и Entity Framework v.1.Я могу только вообразить, связал ли бы слой DL с LINQ2SQL, который действительно был подчеркнут.

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

1 Ответ

1 голос
/ 23 августа 2010

Я бы определенно отделил ORM от моего DL.Т.е. при использовании интерфейсов переключение ORM по вашему выбору не так уж и сложно.

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

Я сделал это с Active Record, и это работает очень хорошо.Я могу провести модульное тестирование, не зная, что я использую Active Record, а также использовать интеграционные тесты в реализации Active Record, чтобы убедиться, что ввод-вывод данных в порядке.(Возможно, это немного излишне, но мне это нравится).

В итоге ваш ORM должен помочь вам выполнить ваш шаблон хранилища, а не его заменять.

...