我是Dapper微型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;
}
上面的代码不起作用,因为列名与对象的(人)属性不匹配。在这种情况下,我可以在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没有允许你指定列属性的工具 ,我并不反对添加对它的支持,只要我们不引入依赖。