您好我使用NHiberante填充我的网页应用程序的分页和订购网格。 它工作得很好,直到我决定将投射投入使用。
这是原始的,有效的代码:
var data = repository
.Where(predicate);
.OrderBy(columns)
.Skip(amount)
.Take(anotherAmount);
然后我开始介绍我的投影,它也运行良好:
var data = repository
.Where(predicate);
.OrderBy(columns)
.Select(myProjection);
我很高兴一切正常,所以我添加了缺少Skip和Take,但是停止 - 现在Nhibernate声明不支持Select(NotSupportedException)。代码:
var data = repository
.Where(predicate);
.OrderBy(columns)
.Skip(amount)
.Take(anotherAmount)
.Select(projection);
这是一个错误,还是我做错了什么?
答案 0 :(得分:0)
当你调用.Count()执行查询时,查询不再存在。您需要发出两个单独的查询来获取计数和列表。
你可以用Future<>做一些奇特的事情。或MultiQuery。
编辑: http://groups.google.com/group/nhusers/browse_thread/thread/16c296414aedc09d
这里的第二篇文章应该能指出你正确的方向。
答案 1 :(得分:0)
在我看来,这是NH的一个错误。在3.3.1.4000版本中它可以正常工作。