我是 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; }
上面的代码不起作用,因为列名与对象的 (Person) 属性不匹配。在这种情况下,我可以在 Dapper 中做些什么来手动映射(例如person_id => PersonId)具有对象属性的列名吗?
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 没有允许您指定Column Attribute的工具,我不反对添加对它的支持,前提是我们不引入依赖项。