大まかなマルチマッピング - コレクションが空です

c# dapper

質問

私はDapperを使用して、一連の共有と関連する1対多のShareItemsとShareHistoriesのコレクションを返そうとしています。 My Dapperの呼び出しは次のようになります。

string sql =
    @"select s.Id, s.UserId, s.Name, si.ShareId as Id, si.Name as ItemName
    , sh.ShareId As Id, sh.DateShared, sh.SentTo 
    from Shares s 
    inner join ShareItems si on s.Id = si.ShareId
    inner join ShareHistory sh on s.Id = sh.ShareId
    where s.Id = @shareId";

    return conn.Query<Share, List<ShareItem>, List<ShareHistory>, Share>(
                sql,
                (share, shareItems, history) => 
                    { 
                      share.Items = shareItems; 
                      share.History = history; return share; 
                    },
                new { shareId = shareId }).Single();

私はSQLでクエリを実行すると、私は期待して平坦なデータを取得します。しかし、Dapperを使ってコードを実行すると、アイテムと履歴のコレクションが空に戻ってきます。私はsplitOnパラメータで悩んでいましたが、 この質問を読んだ後、splitOnが何をしているのか理解しています(これはDapperサイトのどこかにあるのが良いでしょう)。だから私は何が間違っているの?

受け入れられた回答

私はあなたが1行から深いオブジェクトグラフを埋めることができるとは思わない。 (すべての項目がその行に含まれていない限り)同様の質問があります。

編集: QueryMultipleもあります - あなたはそれをチェックしたいかもしれません。複数の結果セットを返すことができます。エンティティをマップすることができます。

クエリの複数の例



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ