Я "обновляю" приложение MVC. Ранее DAL был частью Модели как серия репозиториев (на основе имени объекта), использующих стандартные запросы LINQ to SQL. Теперь это отдельный проект, созданный с использованием PLINQO.
Поскольку PLINQO генерирует расширения запросов на основе свойств сущности, я начал использовать их непосредственно в своем контроллере ... и полностью исключил репозитории.
Работает нормально, это больше вопрос, на который стоит обратить ваше внимание, должен ли я продолжить этот путь или перестроить репозитории (используя PLINQO в качестве DAL в файлах репозитория)?
Одно из преимуществ использования контекста данных, сгенерированного PLINQO, заключается в том, что когда мне нужен доступ к БД, я просто делаю одну ссылку на контекст данных. В соответствии с шаблоном репозитория я должен был ссылаться на каждый репозиторий, когда мне требовался доступ к данным, иногда требовалось ссылаться на несколько репозиториев на одном контроллере.
Большим преимуществом, которое я увидел в репозиториях, были метко названные методы запросов (то есть FindAllProductsByCategoryId (int id) и т. Д.). С кодом PLINQO это _db.Product.ByCatId (int id) - что тоже неплохо.
Мне нравятся оба, но где это становится "более харриевым", когда запрос использует предикаты. Я могу свернуть это в метод запроса хранилища. Но в коде PLINQO это будет что-то вроде _db.Product.Where (x => x.CatId == 1 && x.OrderId == 1); Я не уверен, что мне нравится иметь такой код в моих контроллерах.
Как вы относитесь к этому?