Я новичок в Dapper Micro ORM. Пока я могу использовать его для простых материалов, связанных с ORM, но я не могу сопоставить имена столбцов базы данных с свойствами класса. Например:
У меня есть таблица базы данных следующим образом:
Table Name: Person
person_id int
first_name varchar(50)
last_name varchar(50)
и у меня есть класс под названием Person
public class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Обратите внимание, что имена моих столбцов в таблице отличаются от имени свойства класса, к которому я пытаюсь сопоставить данные, полученные из результата запроса.
var sql = @"select top 1 PersonId,FirstName,LastName from Person";
using (var conn = ConnectionFactory.GetConnection())
{
var person = conn.Query<Person>(sql).ToList();
return person;
}
Вышеупомянутый код не будет работать, поскольку имена столбцов не будут соответствовать свойствам объекта (Person). В этом сценарии есть ли что-нибудь, что я могу сделать в Dapper, чтобы вручную сопоставить (например, person_id => PersonId
) имена столбцов с свойствами объекта?
Любая подсказка или помощь будут высоко оценены.
Это прекрасно работает:
var sql = @"select top 1 person_id PersonId, first_name FirstName, last_name LastName from Person";
using (var conn = ConnectionFactory.GetConnection())
{
var person = conn.Query<Person>(sql).ToList();
return person;
}
У Dapper нет объекта, который позволяет вам указать атрибут столбца , я не против добавления поддержки для него, поскольку мы не затягиваем зависимость.
В течение некоторого времени должно работать следующее:
Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;