C# Dapper-使用单个查询将多个一对多映射

C# Dapper-使用单个查询将多个一对多映射,c#,dapper,C#,Dapper,我试图将单个查询的多个集合(一对多引用)映射到一个对象中。对象如下所示: public class Item { public int Id { get; set; } public string Name { get; set; } public List<ItemDetail> Details { get; set; } public List<ItemHistory> Histories { get; set; } publi

我试图将单个查询的多个集合(一对多引用)映射到一个对象中。对象如下所示:

public class Item {
    public int Id { get; set; }
    public string Name { get; set; }
    public List<ItemDetail> Details { get; set; }
    public List<ItemHistory> Histories { get; set; }
    public List<ItemOrder> Orders { get; set; }
}
SELECT
i.[Id], i.[Name],
detail.[Id] ItemDetailId, detail.[Description] ItemDetailDescription,
history.[Id] ItemHistoryId, history.[Date] ItemHistoryDate,
history.[Description] ItemHistoryDescription,
order.[Id] ItemOrderId, order.[Date] ItemOrderDate, order.[Quantity] ItemOrderQuantity

FROM
[dbo].[Items] i
inner join [dbo].[ItemDetails] detail on i.[Id] = detail.[ItemId]
inner join [dbo].[ItemHistories] history on i.[Id] = history.[ItemId]
inner join [dbo].[ItemOrders] order in i.[Id] = order.[ItemId]
好的,我已经通过Nuget添加了Dapper,并且
Query
扩展方法不允许我映射一行中的多个类型。如何通过Dapper.NET将上面的查询映射到上面的对象


谢谢大家

Dapper可以通过假设您的Id列命名为Id/Id(您可以通过splitOn参数进行配置)来拆分查询行

此外,您需要使用QueryMultiple来收集列表(ItemDetail…

请添加ItemDetail、ItemHistory、ItemOrder类。这个答案中应该有一个实际的例子:-)