Dapperのマルチ マップ クエリの一部として単一の列を返す必要があるシナリオがあります。
以下の例を簡略化しましたが、本質的に、取得したい単一の列値 (int) は Post クラスのプロパティではありません (データベース テーブルにあります)。
status が問題の int 値である例の次の行と同様の方法で使用するため、この値を単独で取得したいと考えています。
post.SetSomeStatus(status);
コード例は次のとおりです。
var sql =
@"select *, p.Status from #Posts p
left join #Users u on u.Id = p.OwnerId
Order by p.Id";
var data = connection.Query<Post, User, int, Post>(sql, (post, user, status) => {
post.Owner = user;
post.SetSomeStatus(status);
return post;
});
var post = data.First();
このコードで次のエラーが表示されます: Index was outside the bounds of the array。