ไม่สามารถเล่นวิดีโอนี้
ขออภัยในความไม่สะดวก

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

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ค. 2024
  • Ближайшая конференция - DotNext 2024, 10 - 11 сентября, Москва + online
    Подробности и билеты: jrg.su/x2GKnA
    - -
    Скачать презентацию с сайта DotNext - jrg.su/xzaMhg
    Бездумное использование 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, о котором многие разработчики даже не подозревали.

ความคิดเห็น • 4

  • @0x1000000
    @0x1000000 หลายเดือนก่อน +2

    Спасибо за доклад! LINQ to DB действительно достойный продукт. Однако основными проблемами доступа к базам данных на основе LINQ, на взгляд являются: 1) Неоднозначность между конструкциями языка C# и SQL, что требует глубокого понимания внутреннего устройства ORM для создания предсказуемых запросов. 2) Трудоемкость написания динамических запросов. Помаявшись в свое время с разными ORM и хранимыми процедурами, я как водится написал свое решение, которое воспроизводит AST языка SQL: th-cam.com/video/Zd-fCb8NimA/w-d-xo.html. Благодаря перегрузке операторов C# идеально подошёл для цели симуляции SQL прямо в коде.

  • @artemadeev7444
    @artemadeev7444 หลายเดือนก่อน +1

    Кейс конечно не частый но как будто расширения для кастомный или только для функций посгрес дает нам жесткую привязку к посгресу, что не самое приятное когда ее вдруг придется менять.

  • @user-ix9vk5if5b
    @user-ix9vk5if5b หลายเดือนก่อน

    35:39 закладка для себя

  • @MrCommanderKid
    @MrCommanderKid หลายเดือนก่อน

    KNN прикольная штука, не знал. Jsonb похожи на bson от монги😮