使用類屬性手動映射列名稱

dapper

我是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;


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因