我想使用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提供程序修复了此错误
答案 0 :(得分:3)
这是一个错误/不支持的方案。错误消息具有误导性。
您可以通过htt://jira.nhforge.org
打开问题问题在于获取;它与FutureValue部分无关。