Обновить
3
10
Igor E.@Ie51

Пользователь

Отправить сообщение

ну в целом так - слишком много хэндлеров, сложности со спецификой Enum в некоторых кейсах, атрибуты переименования и игнорирования, проблемы с приведением измененных типов. Можно было сделать через TypHandler, но появилось бы много неочевидной магии и сложнее.

Часть статьи описывает причину.

В Dapper

var rows = await dbTransaction.QueryAsync(query, commandTimeout: context.CommandTimeout)

rows будут IEnumerable<dynamic> с именованием свойств 1:1 как вернула БД.

вот эти динамические объекты и маппятся на strong type.

Грубое сравнение рефлексии с Dynamitey тут: UsageReallyLateBinding · ekonbenefits/dynamitey Wiki · GitHub

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

Информация

В рейтинге
660-й
Откуда
Россия
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Разработчик баз данных
Ведущий
C#
.NET Core
Golang
Firebird
PostgreSQL
Microsoft SQL Server
MongoDB
Высоконагруженные системы