Хранилище без Entity Framework

6

Я новичок в шаблоне репозитория (только что вернулся из каменного века, привет всем:-). Моя дилемма заключается в том, что мне необходимо разработать способ работы моего приложения 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, которая, как я считаю, не применима к моей ситуации.

Может ли кто-нибудь указать возможные решения или ссылки, над которыми я могу работать дальше?

Спасибо

  • 2
    Ладно, переусердствовали будущие модераторы ... это не по теме. ОП просит помощи в разработке решения, отвечающего определенному требованию ( возможность переключения между SQLite и WCF для доступа к данным ), и перечисляет исследования, которые он / она провел по этой проблеме, включая аналогичное решение, которое не соответствует требованию.
  • 0
    Я удалил тег Entity-Framework - это сделает вас счастливыми?
Теги:

1 ответ

3
Лучший ответ

Добро пожаловать! Я надеюсь, что еда была хорошей.: -)

Вы можете реализовать шаблон репозитория, написав свой собственный уровень доступа к данным (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);
}

См. также этот ответ по аналогичному вопросу; он идет более подробно. Вы находитесь в той же ситуации, что и в этом вопросе, хотя это выглядит по-другому, потому что вы исходите из другой отправной точки. Но решение будет таким же, как только вы увидите, как работает базовый шаблон.

  • 0
    Спасибо, это то, что я искал.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню