Основная проблема заключается в том, что имя вашего столбца и имя свойства различаются. Следовательно, даже если значение возвращается базой данных в результате запроса SQL, оно не сопоставляется с вашим свойством. Поскольку тип данных вашего свойства GUID
, он содержит значение по умолчанию - все нули.
Картины Даппера на условных обозначениях; немного широкая тема для обсуждения. Для вашей конкретной проблемы имя вашего столбца и имя свойства должны совпадать. Существуют и другие способы правильного отображения, если они отличаются.
Я предложу простые решения здесь:
Вы можете указать Dapper игнорировать подчеркивания в имени столбца при отображении.
using Dapper;
Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;
Установить это свойство при запуске проекта где-нибудь.
Использовать псевдонимы столбцов в запросе SQL. Измените ваш SQL-запрос на что-то вроде следующего:
SELECT TOP 100 id, u_id as UId....
Таким образом, без изменения имени столбца и имени свойства, вы сможете правильно заполнить свойство, так как сопоставление исправлено.
Либо измените имя столбца, чтобы оно соответствовало имени свойства, либо наоборот. Я не думаю, что это практично.
Помимо вышесказанного, есть также пользовательское сопоставление, доступное с dapper.