6

ORMLite に dapper のような QueryMultiple ソリューションがあるかどうか疑問に思っていました。

私の使用例は、ページングされた結果を取得することです。

return new {
  Posts = conn.Select<Post>(q => q.Where(p => p.Tag == "Chris").Limit(20, 10))
  TotalPosts = conn.Count<Post>(q.Where(p => p.Tag == "Chris"))
};

また、メイン クエリに加えて他の統計情報を計算するケースもいくつかあり、複数のラウンドトリップを避けたいと考えています。

(関係ないかもしれませんが、私は PostgreSQL を使っています)

4

2 に答える 2

4

おそらく次のようなことができます。

var bothThings = db.Exec(cmd => {

    cmd.CommandText = @"
        select * from TableA
        select * from TableB";

    var both = new BothAandB();

    using (var reader = cmd.ExecuteReader())
    {
        both.a = reader.ConvertToList<A>();
        reader.NextResult();
        both.b = reader.ConvertToList<B>();
    }

    return both;

});

これを拡張メソッドにまとめることは可能かもしれませんが、賢いものは何も思い浮かびません。

于 2013-05-09T19:32:35.220 に答える