我在使用Linq NHibernate查询时遇到了一些麻烦。
我需要获得一批带有详细信息的优惠券。由于我需要迭代它们,我想在一次执行中获取所有信息。
我的查询如下:
return this.Session.Query<VouchersToIntegrate>()
.Take(query.BatchSize)
.Fetch(x => x.VoucherLines)
.ToList();
VouchersToIntegrate是代金券,VoucherLines代表每张代金券的行。
现在批处理大小设置为50.000,但是当我返回所有对象时,我只得到23XXX。这是因为我猜这个框架在从数据库(客户端)获取所有对象之后在内部执行一个不同的。有没有其他方法可以在SQL服务器端使用不同的过滤器获取50.000个对象?
由于
答案 0 :(得分:0)
使用NHibernate的LINQ提供程序无法构建此查询。
然而,您可以手动构建适当的SQL查询,然后使用NHibernate的“Native SQL”API将其映射到实体:http://nhibernate.info/doc/nhibernate-reference/querysql.html。