Я использую EF 4.2, и изначально я катал свои собственные классы репозитория для каждого набора сущностей.Когда я исследовал далее , я понял, что DbContext и IDbSet реализовали необходимую единицу работы и шаблон репозитория.
Это прекрасно работает, но я также хотел бы, чтобы некоторые "вспомогательные" методы возвращали конкретные объекты, используя часто запрашиваемые свойства, отличные от первичного ключа.
Например, чтобы выбрать сотрудника по электронной почте и статусу учетной записи, а не по первичному ключу Id.Мой оригинальный пользовательский репозиторий был перегружен для этого.
Мой вопрос: где мне добавить этот вспомогательный метод?Я вижу, что у меня есть несколько вариантов:
- Добавьте класс типа обслуживания логики домена с помощью этого метода, который использует dbContext и используется другими классами и методами логики домена.
- Расширениекласс DbContext для добавления дополнительного метода.
- Замените IDbSet на собственный репозиторий.
- Оберните dbContext в дополнительные классы репозитория для каждого набора сущностей и добавьте метод в пользовательский набор,
Кажется, у каждого есть свои плюсы и минусы, но я больше склоняюсь к 1 или 2. Есть мысли?