Size: a a a

Архитектура ИТ-решений

2021 July 05

PD

Phil Delgyado in Архитектура ИТ-решений
А какой хороший ORM?
источник

Ms

Mutko says in Архитектура ИТ-решений
Которого нет)
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
Такие - конечно. А рефакторинги именований - делаются сильно проще.
источник

p

pragus in Архитектура ИТ-решений
А что с типами в случае raw sql?
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Рефакторинг переименований класса вообще от ОРМ не зависит же
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Лямбда на маппинг, одна строка и все.
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
Ну, например, так (имена атрибутов обфусцированы):
                result =
                   (from Entity1 e1 in session
                    where e1.Prop1 == propValue
                    join Entity2 e2 in session
                        on e2 equals e1.Prop2.Prop7.Prop8
                    join Entity 3 e3 in session
                        on e2 equals e3.Prop3
                    where (e2.Prop4 == propValue4 || propValue4 == null)
                          && e3.SomeBoolProp
                    select e2.AnotherEntity.ThirdEntity).ToList();
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
Это самодельный ORM и C#
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
Ну как... хочется же, чтобы и таблички с колонками в БД нормально назывались.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ну это копия SQL, в чем бонус?
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Так ты не можешь колоночки в БД переименовать без миграции (иногда сложной).
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
Нет преобразований входов и выходов, статическая проверка структуры запроса и типов данных.
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
Конечно, не можешь без миграции. Но когда в 99% случаев она простая и безошибочная - то это играет.
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Она не может быть простой, это всегда exclusive lock
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
Bingo! Это значимо в привычных тебе контекстах, но не во всех
источник

PD

Phil Delgyado in Архитектура ИТ-решений
В какой БД это не значимо?
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
При чем тут БД???  Это не значимо в любых решениях, где есть downtime
источник

IB

Igor Bespalchuk in Архитектура ИТ-решений
(Я добавил в пример выше доступ через точку в запросе, так что это будет даже компактнее, чем SQL)
И это не самый интересный пример, конечно, долго искать что-то очень яркое.
источник

p

pragus in Архитектура ИТ-решений
Например? Особенно в случае композитных сущностей и сложных проверок(
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ага, ок, ORM не работает для 24*7 и для выкладки без простоя.
источник