JSOOOOOOON
и че это был за крик души?
ридми выглядит устрашающе ) но любопытно
проблема таких орм в том, что имена полей задаются строками, нет compile-time проверки валидности запросов и рефакторинг становится мукой
так и вижу, написал случайно .between("crete_time", "2020-01-01 00:00:00", "2020-12-12 00:00:00") И ловлю люлей
Если рассматривать sql запрос как отдельную сущность которую нам нужно проверять в отрыве от ее назначения. То да проблема есть. А если считать это просто команда к базе данных и ее проверка это выполнение этой команды против конкретной схемы базы данных и проверки результатов этой команды, то проблемы в общем то нет
ну да, так и статическая типизация не нужна, ведь можно рассматривать код как просто набор команд для интерпретатора и его проверка это выполнение этого кода против конкретных входных данные и проверки результатов этого выполнения
Валидность команды sql может проверить только ваша бд или полный ее аналог
нет, валидность имен полей и типа получаемого значения я могу проверить и без базы, посмотрев на описание ее схемы
Но вообще по опыту работы с такой же штукой в Java главная ее проблема что для тривиальных запросов нужно слишком много церемоний - и настоящий orm от этого нас отгородит
Если они вам интересны то да, вам такая штука не подойдёт - обычно требуется чтобы данная команда с такой то схемой данных давала ожидаемый результат и все.
возьмем сишарп: var items = db.Users .Where(x => x.CompanyName == "Microsoft") .Select(x => x.UserInfo) .ToArray() Вот трививальный запрос. Какие тут церемонии?
что за церемонии? навешать атрибутов? или о чем речь?
а ну этот фреймворк это просто свой ДСЛ который дает 0 выразительности по сравнению с просто строковой константой с SQL внутри
ну понятно что схема в коде может отличаться от схемы в бд, с этим никто не спорит, можно при старте приложухи проинспектировать схему в базе и проверить что в коде все нормально, запросы уже проверять не надо. Запросы меняются/добавляются чаще чем меняется схема, поэтому за ними хочется пристальнее следить и раньше обнаруживать ошибки
Перечислять все поля в sql запросах и тп
можно пример? вам все равно так или иначе придется перечислить поля в запросе, если только его не сгенерит орм из типа
Банальная вставка объекта с большим числом полей
в лучшем случе в SQL будет не лучше. В худшем - куда хуже. Но к чему вопрос-то?
А в этом вопроса не было :)
Обсуждают сегодня