2016-10-28 3 views
-1

Какую роль играет контекст в EF? Должен ли я использовать шаблон репозитория? Потому что в моем понимании контекста это уже репозиторий. Это абстракция магазина или я ошибаюсь?Какую роль играет контекст в EF?

ответ

1

Это сильно обсуждается, поэтому рассмотрите следующее как «ответ».

Контекст в EF - это единица работы, где DbSets являются хранилищами. Вместе они образуют абстракцию по базе данных. Метод SaveChanges будет выполнять все изменения, внесенные в каждый репозиторий.

Есть много примеров, когда люди используют шаблон репозитория для создания IRepository, который использует контекст/DbSet внутренне. Но, делая это, вы:

  • создание абстракции над абстракцией
  • потерей функциональности EF, так как ваш интерфейс скрывает реализацию

Причины вы бы создать эту дополнительную абстракцию, что вы можете замените EF на что-то еще, скажем, другую базу данных/хранилище. Но я считаю, что yagni здесь. Если вы запускаете проект, предназначенный для базы данных SQL, каковы шансы, что ваш клиент изменится на Oracle, например?

Надеюсь, это поможет.

+0

Мое мнение такое же, как у вас. И я думаю, что хранилище сделает абстракцию над самим EF? –

 Смежные вопросы

  • Нет связанных вопросов^_^