1
4

1 に答える 1

4

QueryOver は LINQ ではありません。

2 番目のコード スニペットは、すべてのレコードを取得し、メモリ内で LINQ-to-objects を使用しているため機能します。

あなたがすべきことは次のとおりです。

session.Query<A>()
       .Where(a => a.B.Count() > 0)
       .ToList();

またはさらに良い:

session.Query<A>()
       .Where(a => a.B.Any())
       .ToList();

Queryは拡張メソッドです。追加する必要がありますusing NHibernate.Linq;

于 2011-04-25T20:06:27.113 に答える