大多数示例/问题只是介绍了使用split这样的映射“仅一个”查询级别的解决方案:
var sql = "SELECT P.Id, P.FirstName, P.LastName, " +
"A.Id AS AddressId, A.StreetNumber, A.StreetName, A.City, A.State " +
"FROM People P INNER JOIN Addresses A ON A.AddressId = P.AddressId; ";
db.Query<Person, Address, Person>( sql, (person, address) => {
person.Address = address;
return person; }, splitOn: "AddressId" ).ToList();
我有一个类似这样的查询(仅作为示例):
Select * from Country C
inner join State S
on C.CountryId = S.CountryId
inner join City Ct
on S.StateId = Ct.StateId
如何使用dapper将其映射到我的模型/类?
答案 0 :(得分:1)
Dapper或其扩展中没有满足您需求的现成解决方案。 Dapper分别映射结果集中的每一行。因此,您需要一些额外的映射才能执行所需的操作。获得多个Query
的{{1}}的结果后,您可以手动进行操作。或使用一些映射工具。请考虑对this question进行各种回答。适应您的情况,解决方案(带有Slapper.Automapper映射)将是:
splitOn