1

我在使用 Linq NHibernate 查询时遇到了一些问题。

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

我的查询如下:

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

其中 VouchersToIntegrate 是凭证,VoucherLines 是每个凭证的行。

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

谢谢

4

1 回答 1

0

没有办法用 NHibernate 的 LINQ 提供程序构造这个查询。

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

于 2016-04-06T18:53:28.373 回答