NHibernate集合渴望加载需要计算

时间:2016-04-06 16:20:38

标签: c# nhibernate fetch eager-loading skip-take

我在使用Linq NHibernate查询时遇到了一些麻烦。

我需要获得一批带有详细信息的优惠券。由于我需要迭代它们,我想在一次执行中获取所有信息。

我的查询如下:

                return this.Session.Query<VouchersToIntegrate>()
                .Take(query.BatchSize)
                .Fetch(x => x.VoucherLines)                    
                .ToList();

VouchersToIntegrate是代金券,VoucherLines代表每张代金券的行。

现在批处理大小设置为50.000,但是当我返回所有对象时,我只得到23XXX。这是因为我猜这个框架在从数据库(客户端)获取所有对象之后在内部执行一个不同的。有没有其他方法可以在SQL服务器端使用不同的过滤器获取50.000个对象?

由于

1 个答案:

答案 0 :(得分:0)

使用NHibernate的LINQ提供程序无法构建此查询。

然而,您可以手动构建适当的SQL查询,然后使用NHibernate的“Native SQL”API将其映射到实体:http://nhibernate.info/doc/nhibernate-reference/querysql.html