為嵌套對象編寫Dapper查詢

dapper orm

我有一個代碼結構如下:

class Person
{
    Name PersonName;
    int Age;
}

class Name
{
    string FirstName { get; set; }
    string LastName { get; set; }
}

這是我的存儲過程,它填充數據庫中的數據。

Create Procedure SpGetAllPersons
As
Select FirstName, LastName, Age from Persons

如何編寫從數據庫中提取所有Person的Dapper查詢?

例:

List<Person> Persons = DbConn.Query<Person>("SpGetAllPersons", CommandType.StoredProcedure);

一般承認的答案

如果要選擇嵌套對象,則需要使用多映射器。

這應該工作:

List<Person> persons = DbConn.Query<Name,Person,Person>
  ("SpGetAllPersons",
     (name,person) => {person.Name = name; return person;} 
     commandType: CommandType.StoredProcedure, 
     splitOn: "Age");

多映射器可以返回任何類型,甚至只返回未映射到任何db表的聚合類型。

如果您打算拆分任何未被稱為idId內容,則提供splitOn參數非常重要。



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