Я новичок в шаблоне репозитория (только что вернулся из каменного века, привет всем:-). Моя дилемма заключается в том, что мне необходимо разработать способ работы моего приложения Windows Store с SQLite (SQLite-Net) сегодня, а в ближайшем будущем - работать с службами WCF (или с некоторым непрямым доступом к базе данных). В основном я хочу переключить поставщика для уровня доступа к данным легко.
Лучшим сайтом, с которым я столкнулся, является этот блог (http://blog.longle.net/2013/05/11/genericizing-the-unit-of-work-pattern-repository-pattern-with-entity-framework-in-mvc/) Но, как и в любом другом месте, у него все еще есть тяжелая доза инфраструктуры Entity, которая, как я считаю, не применима к моей ситуации.
Может ли кто-нибудь указать возможные решения или ссылки, над которыми я могу работать дальше?
Спасибо
Добро пожаловать! Я надеюсь, что еда была хорошей.: -)
Вы можете реализовать шаблон репозитория, написав свой собственный уровень доступа к данным (DAL) в качестве интерфейса, а затем просто нарисуйте классы адаптера SQLite и WCF, которые оба реализуют этот интерфейс. Ваш интерфейс будет определять методы запросов и методы обновления. Например, вы можете написать следующее:
public interface IWidgetRepository
{
// Query methods
Widget GetById(string id);
IEnumerable<Widget> GetFeaturedWidgets();
IEnumerable<Widget> GetRecommendedWidgetsForUser(string userId);
// Update methods
void RenameWidget(string id, string newName);
void UpdateWidgetPrice(string id, decimal newPrice);
}
См. также этот ответ по аналогичному вопросу; он идет более подробно. Вы находитесь в той же ситуации, что и в этом вопросе, хотя это выглядит по-другому, потому что вы исходите из другой отправной точки. Но решение будет таким же, как только вы увидите, как работает базовый шаблон.