我有一个代码结构如下:
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);
答案 0 :(得分:8)
如果要选择嵌套对象,则需要使用多映射器。
这应该有效:
List<Person> persons = DbConn.Query<Name,Person,Person>
("SpGetAllPersons",
(name,person) => {person.Name = name; return person;}
commandType: CommandType.StoredProcedure,
splitOn: "Age");
多映射器可以返回任何类型,甚至只返回未映射到任何db表的聚合类型。
如果您打算拆分任何未调用splitOn
或id
的内容,请务必提供Id
参数。