手动映射具有类属性的列名 [英] Manually map column names with class properties
问题描述
我是Dapper微型ORM的新手。到目前为止,我已经可以将其用于与ORM相关的简单操作,但是我无法使用类属性映射数据库列名称。
I am new to the Dapper micro ORM. So far I am able to use it for simple ORM related stuff but I am not able to map the database column names with the class properties.
例如,我拥有以下数据库表:
For example, I have the following database table:
Table Name: Person
person_id int
first_name varchar(50)
last_name varchar(50)
我有一个名为Person的类:
and I have a class called Person:
public class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
请注意,我在表中的列名与属性名不同
Please note that my column names in the table are different from the property name of the class to which I am trying to map the data which I got from the query result.
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
)具有对象属性的列名吗?
The above code won't work as the column names don't match the object's (Person) properties. In this scenario, is there anything i can do in Dapper to manually map (e.g person_id => PersonId
) the column names with object properties?
推荐答案
工作正常:
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 has no facility that allows you to specify a Column Attribute, I am not against adding support for it, providing we do not pull in the dependency.
这篇关于手动映射具有类属性的列名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!