Комментарии 8
Одним из ее преимуществ является функциональность картографа
А геодезист есть?
Касательно LinqToDb - во-первых, у них есть адаптер к EF Core - можно пользоваться полностью их движком запросов и всеми его возможностями, используя модели EF (включая EF-ные миграции, и вообще полностью DbContext из EFCore) - и даже используя EF-ный Change Tracker, если зачем-то нужно. Я в своих проектах использую EFCore и LinqToDb через этот адаптер к EF Core наравне, и нарадоваться не могу, воспринимая LinqToDb в таком режиме как возможность расширить достаточно куцый транслятор EFCore-linq выражений в SQL.
Во-вторых, разработчики LinqToDb вроде где-то были тут на Хабре.
Рассмотрим пример с обновлением ID пользователя
надеюсь это не реальный код, судя по кавычкам там может быть строка, это не безопасно(привет sql-инъекции)
Лично я использую в ASP.Net Core проектах EFCore + FlexLabs.EntityFrameworkCore.Upsert при необходимости. В других проектах использовал Dapper в основном.
Уточним, что в этом примере идентификатор пользователя - GUID, поэтому атака SQL инъекцией невозможна
А потом стандартный дотнетовский GUID не устраивает, начинаете его генерировать как строку, где-то забыли проверить и все, привет потенциальная уязвимость.
потому лучше делать грамотно, тем более когда это ничего не стоит в данном примере.
Так же при использовании параметров это уже будет параметризованный запрос, и некоторые бэкенды их могут преобразовать в prepared-statement.
Знание ORM = знание sql + фич бд на проекте + знание и тонкости используемой orm. И в какой sql код, будет преобразован orm код. Не думаю, что следует привязывать бизнес логику к ORM'у. Следует привязывать к сервисам, а уже методы сервисов вызывать на уровне бизнес логики. Абстрагировать уровень бд. И уже все равно, что лежит в Service просто юзаем методы. Была неплохая статья на Хабре, типа я не буду учить +100500 ORM
Статья ни о чём. Просто привели несколько названий ORM с небольшими и совершенно не содержательными описаниями! Ник какого описания плюс и минусов, фактически никаких примеров работы, никаких сравнений, никаких тестов производительности (не говоря уже о сравнительных тестах по скорости решению эталонных задач, и объёму написанного кода) - пустота! Даже ссылок на документацию нет (для самостоятельного изучения темы по каждому ORM)
Обзор ORM для C#: что подойдет для проекта