1

由于某种原因,除非我以某种方式执行此操作,否则我无法在 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<MyType, MyType>,而第二个中的代码导致查询的类型为 QueryOver<MyType>。

如果这样写,它也可以工作。

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

当第一个和第三个版本工作时,为什么第二个版本会严重失败?这似乎是奇怪的行为。

4

1 回答 1

0

第二版有错别字...

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

缺少>

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

不确定这是否是您要寻找的东西。

于 2015-11-16T23:29:02.030 回答