Алексей Фадеев — Не EF Core единым: альтернативная ORM LINQ to DB и ее возможности

Подробнее о конференции DotNext:
— — Скачать презентацию с сайта DotNext —
Бездумное использование ORM-библиотек приводит к большому росту нагрузки на БД, администраторы баз данных не дадут соврать. Но ORM-библиотеки совершенствуются, разработчики учатся на своих и чужих ошибках, и многие научились писать код для ORM, генерирующий вполне оптимальные запросы для типовых операций. Но есть еще одна проблема ORM — ограниченность инструментов. Популярная СУБД Postgres имеет массу операторов и конструкций, выходящих за рамки стандарта SQL (да и в других СУБД такое встречается). ORM-библиотека LINQ to DB имеет важную особенность: она позволяет очень просто (буквально в пару строк) писать расширения, реализующие любой SQL-оператор или конструкцию. В этом докладе Алексей показал, как строить нетипичные для ORM запросы, например, с выражениями CTE (в том числе рекурсивными), табличными функциями и LATERAL JOIN. А также привел примеры использования специфичной для PostgreSQL функциональности: работы с массивами и jsonb, агрегатами array_agg и jsonb_object_agg, использование встроенного полнотекстового поиска, поиск по геоданным «KNN». Помимо демонстрации возможностей ORM LINQ to DB доклад может быть интересен, как раскрывающий специфическую функциональность самой СУБД Postgres, о котором многие разработчики даже не подозревали.

Смотрите также