由于某种原因,除非我以某种方式执行此操作,否则我无法在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);
当第一个和第三个版本有效时,第二个版本失败的原因是什么?这似乎很奇怪。
答案 0 :(得分:0)
第二版中有拼写错误...
var query = QueryOver.Of<MyType().Skip(1);
缺少>
var query = QueryOver.Of<MyType>().Skip(1);
不确定那就是你要找的地方。