Недавно попался под руку интересный проект - Spolty Framework. Который представляет собой библиотеку, позволяющую создавать динамические Linq запросы и расширяет возможности ORM-систем от Microsoft – LINQ to SQL и Entity Framework.
Преимущества данной библиотеки:
1. Нет строгой типизации;
2. Легко можно создать Join'ы любой глубины, при этом знание sql абсолютно не обязательно;
3. Легко добавить фильтры;
4. Легко добавить сортировку.
Сценарий использования, я вижу следующий. На сайте имеется много однотипных страниц, в которых есть фильтры , сортировки, grid. Но вам не хочется создавать страницы копипастом (это может вызвать кучу проблем). В качестве решения вы создаёте базовую страницу, у которой есть свойства JoinNode (объект, который будет хранить джойны), Orderings (набор условий сортировки), Conditions (набор условий WHERE) и метод LoadData, который будет создавать QueryDesigner (главный класс, который используется для генерации любых запросов) и отдавать ему значения JoinNode, Conditions, Orderings. Далее наследуетесь от этой базовой страницы, и в методе Page_Load устанавливаете все, что вам нужно (JoinNode, Conditions, Orderings). Дальше вызываете LoadData - который вернёт нужный набор данных. Инструкции по использованию библиотеки постоянно пополняются, их можно почитать блоге разработчиков.
Скачать библиотеку можно отсюда.
Ссылки по теме:
- Блог разработчиков Spolty Framework
- Скачать Spolty Framework
- LINQ to SQL
- Entity Framework