NHibernate:在某些场景中跳过后不能选择

时间:2015-11-16 21:51:00

标签: select nhibernate skip take nhibernate-4

由于某种原因,除非我以某种方式执行此操作,否则我无法在Skip()/ Take()之后使用Select()。以下代码有效,并允许我将结果用作子查询的一部分。

var query = QueryOver.Of<MyType>();
query.Skip(1);
var result = query.Select(myType => myType.Id);

但是,如果我尝试在一行上创建查询,我就无法编译。

var query = QueryOver.Of<MyType>().Skip(1);
var result = query.Select(myType => myType.Id);

看起来第一个中的代码导致查询的类型为QueryOver&lt; MyType,MyType&gt;而第二个导致查询类型为QueryOver&lt;的MyType&GT;

如果这样写的话也可以。

var query = QueryOver.Of<MyType>().Select(myType => myType.Id).Skip(1);

当第一个和第三个版本有效时,第二个版本失败的原因是什么?这似乎很奇怪。

1 个答案:

答案 0 :(得分:0)

第二版中有拼写错误...

var query = QueryOver.Of<MyType().Skip(1);

缺少>

var query = QueryOver.Of<MyType>().Skip(1);

不确定那就是你要找的地方。