NHibernate 3.0 Linq Provider。跳过和顶部后选择不工作

时间:2011-01-04 11:40:31

标签: c# linq nhibernate linq-to-nhibernate

您好我使用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);

这是一个错误,还是我做错了什么?

2 个答案:

答案 0 :(得分:0)

当你调用.Count()执行查询时,查询不再存在。您需要发出两个单独的查询来获取计数和列表。

你可以用Future<>做一些奇特的事情。或MultiQuery。

编辑: http://groups.google.com/group/nhusers/browse_thread/thread/16c296414aedc09d

这里的第二篇文章应该能指出你正确的方向。

答案 1 :(得分:0)

在我看来,这是NH的一个错误。在3.3.1.4000版本中它可以正常工作。