是否可以在NHibernate(> 3.0)Linq的同一查询中调用IQueryable.To Future()和IQueryable.Fetch()?

时间:2011-04-07 14:36:07

标签: nhibernate linq-to-nhibernate

我想使用LINQ to NHibernate进行经典的计数/分页场景:

var query = Session.Query<Entity>().Where(...);
var count = query.ToFutureValue(c => c.Count());
var results = query.OrderBy(x => x.Field)
                            .Skip(20)
                            .Take(10)
                            .Fetch(x => x.Related1)
                            .Fetch(x => x.Related2)
                            .ToFuture();

ToFutureValue()的核心实现不接受表达式参数,但实现起来非常简单(在this blog post中有解释)。最后一个查询在NotSupportedException(“你也可以在NhQueryable上使用AsFuture()方法”)调用.ToFuture()方法时失败。问题似乎是.Fetch()扩展方法返回NhFetchRequest和.Future()扩展方法预期和NhQuerable。 这有什么解决方法吗?

编辑:自3.2版本起,NHibernate Linq提供程序修复了此错误

1 个答案:

答案 0 :(得分:3)

这是一个错误/不支持的方案。错误消息具有误导性。

您可以通过htt://jira.nhforge.org

打开问题

问题在于获取;它与FutureValue部分无关。