Подтвердить что ты не робот

Как заставить Dapper игнорировать/удалять символы подчеркивания в именах полей при сопоставлении?

Существует множество способов сопоставления имен полей базы данных с именами классов, но что является самым простым способом просто удалить символы подчеркивания?

    public IEnumerable<PersonResult> GetPerson(int personId)
    {
        using (var dbConnection = _dbConnectionFactory.Create(ConnectionStrings.ProjectXYZ))
        {
            IEnumerable<PersonResult> result =
                dbConnection.Query<PersonResult>("fn_get_person", new { personId },
                    commandType: CommandType.StoredProcedure).ToList();

            return result;
        }
    }

Таблица и поля базы данных:

person
-------- 
person_id
full_name

Класс, который работает: (dapper уже игнорирует капитализацию)

public class PersonResult
{    
    public int Person_Id { get; set; }
    public string Full_Name { get; set; }
}

Что я хотел бы изменить для класса:

public class PersonResult
{    
    public int PersonId { get; set; }
    public string FullName { get; set; }
}
4b9b3361

Ответ 1

Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;

выполненная работа; p

Ответ 2

readme не поддерживает поддержку переименования столбцов. Вы можете использовать их в select:

select person_id as personid, full_name as fullname from fn_get_person();

как предложено в этом ответе.