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