1

У меня есть хранилище под названием: IChocolateRepositoryКак реализовать это с использованием шаблона репозитория (или что-то более подходящее)?

Это происходит из общего хранилища интерфейса IRepository <>, который определяет основные функции репозитория (FindAll, удалять, добавлять и т.д.)

Теперь мне нужно написать кусок кода, который пойдет и удалит «все конфеты из базы данных с данными истечения до даты поставки» (при условии, что ExpiryDate - свойство, не допускающее nullable, в классе модели Chocolate.)

Означает ли это, что это принадлежит репозиторию?

Кроме того, как будет выглядеть пример реализации? (Я использую EF CTP5)

ответ

2

Я так не думаю.

Это не относится к Repository, но относится к классу, который работает Transactions, используя эти Repositories.

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

2

Если у вас уже есть метод удаления (T item) в базовом интерфейсе, то не повредит, если вы добавите Remove (Predicate < 'T'> условие), чтобы удовлетворить ваши потребности.

Поэтому вместо удаления одного определенного элемента вы можете иметь очень общий интерфейс для удаления всего, что удовлетворяет заданному предикату.

0

У меня был небольшой проект (FYP для университетского образования) и из-за ограничений по времени и что я не знал лучше. Я добавил свои более сложные методы данных в репозиторий, жестко закодированный.

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

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

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