Dapper - 1つのクエリで複数の1対多マッピング

c# dapper

質問

私はオブジェクトに単一のクエリの複数のコレクション(1対多の参照)をマップしようとしています。オブジェクトは次のようなものです:

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]

さて、私はDaugをNugetで追加しました。そしてQuery拡張メソッドは、複数の型を連続してマップすることを許可していません。上記のクエリをDapper.NETを通じて上記のオブジェクトにどのようにマッピングできますか?

ありがとうございました!

人気のある回答

Dapperは、Id列の名前がId / idであるという前提でクエリ行を分割できます( splitOnパラメータで構成できます)。
さらに、リストを収集するためにQueryMultipleを使用する必要があります(ItemDetail ...)



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow