Я новичок в шаблоне репозитория, и после большого чтения в Интернете у меня есть грубое понимание того, что происходит, но, похоже, существует конфликт идей.
Одним из них является то, что IRepository должен вернуть.
Я бы хотел иметь дело ТОЛЬКО с Pocos, чтобы у меня была реализация IRepository для каждого агрегатного корня, например:
public class OrangeRepository: IOrangeRepository
{
public Orange GetOrange(IOrangeCriteria criteria);
}
где IOrangeCriteria принимает ряд аргументов, специфичных для поиска апельсина.
Еще одна вещь, которую я имею, - это ряд бэк-эндов данных - вот почему я вошел в этот паттерн в первую очередь. Я предполагаю, что у меня будет реализация для каждого, например
OrangeRepositoryOracle, OrangeRepositorySQL, OrangeRepositoryMock и т. Д.
Я бы хотел оставить его открытым, чтобы я мог использовать EF или NHibernate - опять же, если мой IOrangeRepository работает с POCO, я бы инкапсулировал это в самом Repository, реализовав OrangeRepositoryNHibernate и т. Д.
Я на правильных линиях?
Спасибо
РЕДАКТИРОВАТЬ: Спасибо за отзыв, у меня больше никого нет, чтобы отразить эти идеи в данный момент, поэтому это ценится!