質問: 私はいくつかの種類のDapper Extensionsを使用しています。ほとんどの使用例ではうまく機能します。私はたくさんの関係を持っていますが、私は次のようなことをしたいと思います。 ``` SELECT id,a,b,c FROM Foo WHERE Foo.id in (SELECT foo_id FROM foo-bar WHERE bar-id=@bar_id) ``` 明らかに、Dapper Extensionsは "SELECT id、a、b、c FROM Foo"を処理できますが、後者の部分は処理できません。私はFoo IDのリストを取得し、それをDapper Extensionsに渡すことができますが、効率が悪いです。 プレーンなDapperで行うことができない部分は自動的にSELECTカラムリストを取得するので、私が本当に好きなのは次のようなものです: * Dapper Extensionの内部メカニズムからSELECTカラムのリストを取得する * Dapper Extensionの内部メカニズムから基本的な "SELECT id、a、b、c FROM Foo"を取得する * Hook Dapper ExtensionsカスタムWHERE句を追加できるようにコードを取得する 私はコードを見てきましたが、私はこれらのことをする方法を見つけることができません。誰も助けることができますか?私は単純なDapperと "SELECT * ..."を現時点で使っていますが、もっと良い方法があると確信しています。
回答: 私はこれが2012年にサポートされていなかったことを知らなかった。しかしDapperの新しい人がここに着陸し、それがうまくいくかどうか疑問に思うなら、答えは働いているということです。この記事の執筆時点で、最新バージョンのDapper v1.42をnugetから使用しています: ``` var sql = "SELECT id,a,b,c FROM Foo WHERE Foo.id in ( SELECT foo_id FROM foo-bar WHERE bar-id=@bar_id)" using (var cn = new SqlConnection(the_connection_string)) { cn.Open(); var returnedObject = cn.Query(sql, new { bar_id = some_value }); } ```