2 つのエンティティがFoo
あり、 has-manyBar
がどこにあるとします。Foo
Bar
class Foo {
int ImportantNumber { get; set; }
IEnumerable<Bar> Bars { get; set; }
}
class FooDTO {
Foo Foo { get; set; }
int BarCount { get; set; }
}
できれば Criteria インターフェイスのみを使用して、単一のクエリを使用して DTOのBars
perの数を効率的に合計するにはどうすればよいですか。Foo
「SetProjection」を使用してクエリから元のエンティティを取得する方法をいくつも試しましたが、うまくいきませんでした。現在の理論は、次のようなことをすることです
SELECT
Foo.*, BarCounts.counts
FROM
Foo LEFT JOIN
( SELECT fooId, COUNT(*) as counts FROM Bar GROUP BY fooId ) AS BarCounts
ON Foo.id=BarCounts.fooId
しかし、基準を使用すると、方法がわかりません。