Expose Включите метод - PullRequest
       4

Expose Включите метод

2 голосов
/ 26 апреля 2011

У меня есть интерфейсы для моего уровня данных, которые предоставляют общие методы, такие как вставка, обновление, удаление, getQuery.

Иногда я хочу добавить метод, который обрабатывает хранилище.Я заметил, что я могу сделать почти все, используя тот общий метод, который предоставляет интерфейс.Единственное, что я не могу сделать, это «Включить».

У меня есть сомнения, стоит ли добавлять метод Include к интерфейсам db, чтобы мой бизнес-уровень мог делать все, не завися от структуры сущностей (system.data.entities).

Какой обходной путь для этой проблемы?

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Использование пользовательской оболочки Include не сделает ваши верхние слои зависимыми от EF.Включить будет частью вашего открытого интерфейса уровня DAL.Принятие решений типа «что если я решу сменить ORM?»действительно плохой способ сделать ваше приложение - создать рабочее решение, а затем улучшить его, если у вас есть время.Переключение на другие ORM действительно редко, и планирование вашего приложения для поддержки этого переключения в 99% случаев является пустой тратой времени и денег.Ваша обязанность - доставить рабочее решение в срок, а не расширяемое решение три месяца спустя.

Единственным недостатком выставленного Include может быть модульное тестирование и макетирование - для этого необходимо скрыть связанные с EF Включения во внутренние компоненты DAL, чтобы они моглибыть насмешливымЭто, вероятно, решено в вашем предыдущем вопросе .

1 голос
/ 26 апреля 2011

На самом деле нет обходного пути. Добавление Include к интерфейсам вашей БД (IObjectSet) является распространенным подходом к решению этой проблемы. Что касается вашей озабоченности слишком тесной связью с Entity Framework, я бы сказал, что переключение ORM полностью в будущем будет довольно трудной задачей, независимо от того, добавите ли вы этот метод расширения. Я бы не волновался об этом.

Вот сообщение в блоге от Джули Лерман о добавлении Include метода расширения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...