如果我有像
这样的对象class Thing
{
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
public string D { get; set; }
}
Dapper非常适合:
return conn.QuerySingle<Thing>(
@"SELECT A, B, C, D
FROM [Thing] WHERE Id = @id", new { id });
但是如果我的班级结构是
那该怎么办?class Thing
{
public string A { get; set; }
public string B { get; set; }
public IEnumerable<Stuff> { get; set; }
}
class Stuff
{
public string C { get; set; }
public string D { get; set; }
}
我如何让Dapper映射到该结构,假设Enumerable将始终在Enumerable中包含1个项目,所以实际上我只是以不同的方式表示相同的数据。
我见过的Dapper教程非常复杂并且包含子查询,但理想情况下我的查询不应该更改,因为它已经返回应该映射到新结构的所有数据。
有什么想法吗?
答案 0 :(得分:0)
您必须创建自己的自定义类型映射器。我在这里写了一篇文章和一些样本:
https://medium.com/dapper-net/custom-type-handling-4b447b97c620